[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v9 18/27] virtio-blk: Call ioctl() directly instea
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [RFC v9 18/27] virtio-blk: Call ioctl() directly instead of irqfd |
Date: |
Thu, 19 Jul 2012 12:19:23 +0300 |
On Thu, Jul 19, 2012 at 10:11:49AM +0100, Stefan Hajnoczi wrote:
> On Wed, Jul 18, 2012 at 4:40 PM, Michael S. Tsirkin <address@hidden> wrote:
> > On Wed, Jul 18, 2012 at 04:07:45PM +0100, Stefan Hajnoczi wrote:
> >> Optimize for the MSI-X enabled and vector unmasked case where it is
> >> possible to issue the KVM ioctl() directly instead of using irqfd.
> >
> > Why? Is an ioctl faster?
>
> I have no benchmark results comparing irqfd against direct ioctl. It
> would be interesting to know if this "optimization" is worthwhile and
> how much of a win it is.
>
> The reasoning is that the irqfd code path signals an eventfd and then
> kvm.ko's poll handler injects the interrupt. The ioctl calls straight
> into kvm.ko and skips the signalling/poll step.
>
> Stefan
Polling is done in kernel so at least for MSI it's just a function call.
In fact ATM irqfd is more optimized. Maybe it's faster for level IRQs
but do we really care?
--
MST
- Re: [Qemu-devel] [RFC v9 12/27] virtio-blk: Add workaround for BUG_ON() dependency in virtio_ring.h, (continued)
- [Qemu-devel] [RFC v9 11/27] virtio-blk: Indirect vring and flush support, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 14/27] virtio-blk: Use pthreads instead of qemu-thread, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 16/27] virtio-blk: Kick data plane thread using event notifier set, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 08/27] virtio-blk: Read requests from the vring, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 18/27] virtio-blk: Call ioctl() directly instead of irqfd, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 21/27] virtio-blk: Add basic request merging, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 20/27] virtio-blk: Add ioscheduler to detect mergable requests, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 26/27] msix: use upstream kvm_irqchip_set_irq(), Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 19/27] virtio-blk: Disable guest->host notifies while processing vring, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 27/27] virtio-blk: add EVENT_IDX support to dataplane, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 24/27] virtio-blk: fix incorrect length, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 17/27] virtio-blk: Use guest notifier to raise interrupts, Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 25/27] msix: fix irqchip breakage in msix_try_notify_from_thread(), Stefan Hajnoczi, 2012/07/18
- [Qemu-devel] [RFC v9 22/27] virtio-blk: Fix request merging, Stefan Hajnoczi, 2012/07/18