qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v6 0/4] virtio: Use ioeventfd for virtqueue notify
@ 2010-12-17 12:01 Stefan Hajnoczi
  2010-12-17 12:01 ` [Qemu-devel] [PATCH v6 1/4] virtio-pci: Rename bugs field to flags Stefan Hajnoczi
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Stefan Hajnoczi @ 2010-12-17 12:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Michael S. Tsirkin

See below for the v6 changelog.

Virtqueue notify is currently handled synchronously in userspace virtio.  This
prevents the vcpu from executing guest code while hardware emulation code
handles the notify.

On systems that support KVM, the ioeventfd mechanism can be used to make
virtqueue notify a lightweight exit by deferring hardware emulation to the
iothread and allowing the VM to continue execution.  This model is similar to
how vhost receives virtqueue notifies.

The result of this change is improved performance for userspace virtio devices.
Virtio-blk throughput increases especially for multithreaded scenarios and
virtio-net transmit throughput increases substantially.

Now that this code is in virtio-pci.c it is possible to explicitly enable
devices for which virtio-ioeventfd should be used.  Only virtio-blk and
virtio-net are enabled at this time.

v6:
 * Default to ioeventfd=off for virtio-net

v5:
 * Fix spurious whitespace change in documentation
 * Test and clear event notifier when deassigning to catch race condition

v4:
 * Simpler start/stop ioeventfd mechanism using bool ioeventfd_started state
 * Support for migration
 * Handle deassign race condition to avoid dropping a virtqueue kick
 * Add missing kvm_enabled() check to kvm_has_many_ioeventfds()
 * Documentation updates for qdev -device with ioeventfd=on|off

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

end of thread, other threads:[~2011-01-04 17:53 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-17 12:01 [Qemu-devel] [PATCH v6 0/4] virtio: Use ioeventfd for virtqueue notify Stefan Hajnoczi
2010-12-17 12:01 ` [Qemu-devel] [PATCH v6 1/4] virtio-pci: Rename bugs field to flags Stefan Hajnoczi
2010-12-17 12:01 ` [Qemu-devel] [PATCH v6 2/4] virtio-pci: Use ioeventfd for virtqueue notify Stefan Hajnoczi
2010-12-17 12:01 ` [Qemu-devel] [PATCH v6 3/4] virtio-pci: Don't use ioeventfd on old kernels Stefan Hajnoczi
2010-12-17 12:01 ` [Qemu-devel] [PATCH v6 4/4] docs: Document virtio PCI -device ioeventfd=on|off Stefan Hajnoczi
2010-12-29 14:52 ` [Qemu-devel] [PATCH] ioeventfd: minor fixups Michael S. Tsirkin
2011-01-03 16:38   ` [Qemu-devel] " Michael S. Tsirkin
2011-01-04 10:28     ` Stefan Hajnoczi
2011-01-04 16:57   ` [Qemu-devel] " Stefan Hajnoczi
2011-01-04 17:53     ` Michael S. Tsirkin

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).