[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20141203.214747.724586077633056397.davem@davemloft.net>
Date: Wed, 03 Dec 2014 21:47:47 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: yangyingliang@...wei.com
Cc: eric.dumazet@...il.com, netdev@...r.kernel.org, willemb@...gle.com
Subject: Re: [PATCH] net: less interrupt masking in NAPI
From: Yang Yingliang <yangyingliang@...wei.com>
Date: Wed, 3 Dec 2014 15:31:50 +0800
> On 2014/11/4 1:25, David Miller wrote:
>> From: Eric Dumazet <eric.dumazet@...il.com>
>> Date: Sun, 02 Nov 2014 06:19:33 -0800
>>
>>> From: Eric Dumazet <edumazet@...gle.com>
>>>
>>> net_rx_action() can mask irqs a single time to transfert sd->poll_list
>>> into a private list, for a very short duration.
>>>
>>> Then, napi_complete() can avoid masking irqs again,
>>> and net_rx_action() only needs to mask irq again in slow path.
>>>
>>> This patch removes 2 couples of irq mask/unmask per typical NAPI run,
>>> more if multiple napi were triggered.
>>>
>>> Note this also allows to give control back to caller (do_softirq())
>>> more often, so that other softirq handlers can be called a bit earlier,
>>> or ksoftirqd can be wakeup earlier under pressure.
>>>
>>> This was developed while testing an alternative to RX interrupt
>>> mitigation to reduce latencies while keeping or improving GRO
>>> aggregation on fast NIC.
>>>
>>> Idea is to test napi->gro_list at the end of a napi->poll() and
>>> reschedule one NAPI poll, but after servicing a full round of
>>> softirqs (timers, TX, rcu, ...). This will be allowed only if softirq
>>> is currently serviced by idle task or ksoftirqd, and resched not needed.
>>>
>>> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
>>
>> Also applied, thanks Eric.
>
> This patch can resolve my performance problem.
> Will/Can this patch queue for stable ?
Such an optimization is not appropriate for -stable.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists