Subject: Re: [PATCH net-next 2/3] virtio-net: use per-receive queue page frag alloc for mergeable bufs

From: Rick Jones <[email-masked]>
Date: Wed, 08 Jan 2014 13:16:44 -0800

On 01/08/2014 10:09 AM, Eric Dumazet wrote:
> In normal networking land, when a host A sends frames to host B,
> nothing prevents A to pause the traffic to B if B is dropping packets
> under stress.
>
> A physical NIC do not use a workqueue to refill its RX queue but uses
> the following strategy :
>
> 0) Pre filling of RX ring buffer with N frames. This can use GFP_KERNEL
>     allocations with all needed (sleep/retry/shout) logic...
> 1) IRQ is handled.
> 2) Can we allocate a new buffer (GFP_ATOMIC) ?
>     If yes, we accept the frame,
>        and post the new buffer for the 'next frame'
>     If no, we drop the frame and recycle the memory for next round.

          and increment a suitably specific statistic so someone trying 
to diagnose performance/other problems can know we dropped the frame.

rick jones