From: Shirley Ma <mashirle@us.ibm.com>
To: "Michael S. Tsirkin" <mst@redhat.com>,
Rusty Russell <rusty@rustcorp.com.au>
Cc: David Miller <davem@davemloft.net>,
kvm@vger.kernel.org, netdev@vger.kernel.org
Subject: [PATCH] virtio: Avoid virtio_net TX queue over run
Date: Wed, 16 Mar 2011 17:09:55 -0700 [thread overview]
Message-ID: <1300320595.3255.29.camel@localhost.localdomain> (raw)
This patch addresses small message size performance in a situation the
KVM guest virtio_net TX queue overrun. This patch adds a new API in
virtio_ring for ring capacity check; and remove KVM guest virtio_net TX
queue send completion interrupts completely. The test has shown that
whenever the queue is overrun, it's much better to drop a few packets
than stopping TX queue and waiting for host to notify the guest to wake
up the TX queue again, the small messages size performance gain for
single TCP_STREAM BW could be up to 200%-300% and better than bare
metal, and no regression has been found in other situation.
Performance data for 10GbE,
KVM guest to local host:
------------------------
Message size 2.6.38-rc8 2.6.38-rc8+patch
1024 1770.61 4528.37
2048 2702.30 7110.95
4096 5256.84 10104.76
8192 7543.66 10945.93
16K 10500.47 10783.50
64K 13718.62 13640.80
KVM guest to remote host:
--------------------------
Message size Bare Metal 2.6.38-rc8 2.6.38-rc8+patch
1024 1802.67 2381.41 5599.15
2048 4317.87 4094.12 9241.86
4096 6266.15 5231.24 9321.87
8192 8409.17 7952.74 9265.45
16K 9351.63 8260.68 8310.29
64K 9347.94 9103.75 9094.38
Thanks
Shirley
next reply other threads:[~2011-03-17 0:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-17 0:09 Shirley Ma [this message]
2011-03-17 5:05 ` [PATCH] virtio: Avoid virtio_net TX queue over run Michael S. Tsirkin
2011-03-17 16:50 ` Shirley Ma
2011-03-17 16:58 ` Eric Dumazet
2011-03-17 17:01 ` Shirley Ma
2011-03-17 18:49 ` Shirley Ma
2011-03-17 18:52 ` Shirley Ma
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=1300320595.3255.29.camel@localhost.localdomain \
--to=mashirle@us.ibm.com \
--cc=davem@davemloft.net \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
/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;
as well as URLs for NNTP newsgroup(s).