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 v5 0/6] virtio-net: mergeable rx buffer size auto-tuning
Date: Thu, 16 Jan 2014 18:36:10 -0800 [thread overview]
Message-ID: <1389926176-6699-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 | 196 +++++++++++++++++++++++++++++++++-------------
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, 213 insertions(+), 90 deletions(-)
--
1.8.5.2
next reply other threads:[~2014-01-17 2:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-17 2:36 Michael Dalton [this message]
2014-01-17 2:36 ` [PATCH net-next v5 1/6] net: allow > 0 order atomic page alloc in skb_page_frag_refill Michael Dalton
2014-01-17 2:36 ` [PATCH net-next v5 2/6] virtio-net: use per-receive queue page frag alloc for mergeable bufs Michael Dalton
2014-01-17 2:36 ` [PATCH net-next v5 3/6] virtio-net: auto-tune mergeable rx buffer size for improved performance Michael Dalton
2014-01-17 2:36 ` [PATCH net-next v5 4/6] net-sysfs: add support for device-specific rx queue sysfs attributes Michael Dalton
2014-01-17 2:36 ` [PATCH net-next v5 5/6] lib: Ensure EWMA does not store wrong intermediate values Michael Dalton
2014-01-17 2:36 ` [PATCH net-next v5 6/6] virtio-net: initial rx sysfs support, export mergeable rx buffer size Michael Dalton
2014-01-17 3:08 ` [PATCH net-next v5 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=1389926176-6699-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