]> git.baikalelectronics.ru Git - kernel.git/commit
virtio-net: transmit napi
authorWillem de Bruijn <willemb@google.com>
Mon, 24 Apr 2017 17:49:27 +0000 (13:49 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 25 Apr 2017 03:55:19 +0000 (23:55 -0400)
commit721a8191dfb7052291447632ac6f398bd84be892
tree6bf84edc9b5fc08886268675a2ec01f934070d2b
parent61ffc18f1808801d032dc3e931f1881737282a11
virtio-net: transmit napi

Convert virtio-net to a standard napi tx completion path. This enables
better TCP pacing using TCP small queues and increases single stream
throughput.

The virtio-net driver currently cleans tx descriptors on transmission
of new packets in ndo_start_xmit. Latency depends on new traffic, so
is unbounded. To avoid deadlock when a socket reaches its snd limit,
packets are orphaned on tranmission. This breaks socket backpressure,
including TSQ.

Napi increases the number of interrupts generated compared to the
current model, which keeps interrupts disabled as long as the ring
has enough free descriptors. Keep tx napi optional and disabled for
now. Follow-on patches will reduce the interrupt cost.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/virtio_net.c