Netdev List
 help / color / mirror / Atom feed
From: Michael Dalton <mwdalton@google.com>
To: "David S. Miller" <davem@davemloft.net>
Cc: Michael Dalton <mwdalton@google.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	netdev@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	Eric Dumazet <edumazet@google.com>,
	Ben Hutchings <bhutchings@solarflare.com>
Subject: [PATCH net-next v6 0/6] virtio-net: mergeable rx buffer size auto-tuning
Date: Thu, 16 Jan 2014 22:23:24 -0800	[thread overview]
Message-ID: <1389939810-14998-1-git-send-email-mwdalton@google.com> (raw)

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

             reply	other threads:[~2014-01-17  6:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-17  6:23 Michael Dalton [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1389939810-14998-1-git-send-email-mwdalton@google.com \
    --to=mwdalton@google.com \
    --cc=bhutchings@solarflare.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox