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
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to