• David S. Miller's avatar
    net: Remove ndo_xmit_flush netdev operation, use signalling instead. · 0b725a2c
    David S. Miller authored
    As reported by Jesper Dangaard Brouer, for high packet rates the
    overhead of having another indirect call in the TX path is
    non-trivial.
    
    There is the indirect call itself, and then there is all of the
    reloading of the state to refetch the tail pointer value and
    then write the device register.
    
    Move to a more passive scheme, which requires very light modifications
    to the device drivers.
    
    The signal is a new skb->xmit_more value, if it is non-zero it means
    that more SKBs are pending to be transmitted on the same queue as the
    current SKB.  And therefore, the driver may elide the tail pointer
    update.
    
    Right now skb->xmit_more is always zero.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0b725a2c
virtio_net.c 50.1 KB