• Alexander Drozdov's avatar
    af_packet: don't pass empty blocks for PACKET_V3 · 41a50d62
    Alexander Drozdov authored
    Before da413eec
     ("packet: Fixed TPACKET V3 to signal poll when block is
    closed rather than every packet") poll listening for an af_packet socket was
    not signaled if there was no packets to process. After the patch poll is
    signaled evety time when block retire timer expires. That happens because
    af_packet closes the current block on timeout even if the block is empty.
    Passing empty blocks to the user not only wastes CPU but also wastes ring
    buffer space increasing probability of packets dropping on small timeouts.
    Signed-off-by: default avatarAlexander Drozdov <al.drozdov@gmail.com>
    Cc: Dan Collins <dan@dcollins.co.nz>
    Cc: Willem de Bruijn <willemb@google.com>
    Cc: Guy Harris <guy@alum.mit.edu>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
af_packet.c 97 KB