virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v6 0/6] virtio-net: mergeable rx buffer size auto-tuning
@ 2014-01-17  6:23 Michael Dalton
  2014-01-17  6:23 ` [PATCH net-next v6 1/6] net: allow > 0 order atomic page alloc in skb_page_frag_refill Michael Dalton
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Michael Dalton @ 2014-01-17  6:23 UTC (permalink / raw)
  To: David S. Miller
  Cc: Michael Dalton, Michael S. Tsirkin, netdev, virtualization,
	Eric Dumazet, Ben Hutchings

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.

Michael Dalton (6):
  net: allow > 0 order atomic page alloc in skb_page_frag_refill
  virtio-net: use per-receive queue page frag alloc for mergeable bufs
  virtio-net: auto-tune mergeable rx buffer size for improved
    performance
  net-sysfs: add support for device-specific rx queue sysfs attributes
  lib: Ensure EWMA does not store wrong intermediate values
  virtio-net: initial rx sysfs support, export mergeable rx buffer size

 drivers/net/virtio_net.c  | 197 +++++++++++++++++++++++++++++++++-------------
 include/linux/netdevice.h |  35 +++++++-
 lib/average.c             |   6 +-
 net/core/dev.c            |  12 +--
 net/core/net-sysfs.c      |  50 +++++++-----
 net/core/sock.c           |   4 +-
 6 files changed, 214 insertions(+), 90 deletions(-)

-- 
1.8.5.2

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-01-17  7:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-17  6:23 [PATCH net-next v6 0/6] virtio-net: mergeable rx buffer size auto-tuning Michael Dalton
2014-01-17  6:23 ` [PATCH net-next v6 1/6] net: allow > 0 order atomic page alloc in skb_page_frag_refill Michael Dalton
2014-01-17  6:23 ` [PATCH net-next v6 2/6] virtio-net: use per-receive queue page frag alloc for mergeable bufs Michael Dalton
2014-01-17  6:23 ` [PATCH net-next v6 3/6] virtio-net: auto-tune mergeable rx buffer size for improved performance Michael Dalton
2014-01-17  6:23 ` [PATCH net-next v6 4/6] net-sysfs: add support for device-specific rx queue sysfs attributes Michael Dalton
2014-01-17  6:23 ` [PATCH net-next v6 5/6] lib: Ensure EWMA does not store wrong intermediate values Michael Dalton
2014-01-17  6:23 ` [PATCH net-next v6 6/6] virtio-net: initial rx sysfs support, export mergeable rx buffer size Michael Dalton
2014-01-17  7:51 ` [PATCH net-next v6 0/6] virtio-net: mergeable rx buffer size auto-tuning David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).