]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'virtio_rx_merging'
authorDavid S. Miller <davem@davemloft.net>
Fri, 17 Jan 2014 07:46:17 +0000 (23:46 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Jan 2014 07:46:17 +0000 (23:46 -0800)
commit585944e887b8679a38a07e66cc909d984b1f407f
tree1d77e0acd1ff34398fba2fa211fe965dde712ba9
parent731d19222909b4ea680e4b4e6e6bbabfe0507e76
parentffd56a1a900db9d7d65ef0a5c5e5b05a7bc8c08f
Merge branch 'virtio_rx_merging'

Michael Dalton says:

====================
virtio-net: mergeable rx buffer size auto-tuning

The virtio-net device currently uses aligned MTU-sized mergeable receive
packet buffers. Network throughput for workloads with large average
packet size can be improved by posting larger receive packet buffers.
However, due to SKB truesize effects, posting large (e.g, PAGE_SIZE)
buffers reduces the throughput of workloads that do not benefit from GRO
and have no large inbound packets.

This patchset introduces virtio-net mergeable buffer size auto-tuning,
with buffer sizes ranging from aligned MTU-size to PAGE_SIZE. Packet
buffer size is chosen based on a per-receive queue EWMA of incoming
packet size.

To unify mergeable receive buffer memory allocation and improve
SKB frag coalescing, all mergeable buffer memory allocation is
migrated to per-receive queue page frag allocators.

The per-receive queue mergeable packet buffer size is exported via
sysfs, and the network device sysfs layer has been extended to add
support for device-specific per-receive queue sysfs attribute groups.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>