[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/9] dataplane: remove EventPoll in favor of Aio
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 3/9] dataplane: remove EventPoll in favor of AioContext |
Date: |
Fri, 08 Mar 2013 10:22:36 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130219 Thunderbird/17.0.3 |
Il 08/03/2013 09:37, Christian Borntraeger ha scritto:
> + if (assign) {
> + int r = event_notifier_init(notifier, 0);
> +
> + if (r < 0) {
> + return r;
> + }
> + virtio_queue_set_guest_notifier_fd_handler(vq, true, with_irqfd);
Perhaps you can simply hard-code with_irqfd to false in this call to
virtio_queue_set_guest_notifier_fd_handler and the one below? Then the
guest notifier will be emulated in userspace and processed via
vdev->binding->notify.
You will not need to overwrite the EventNotifier which is IMO a pretty
ufly violation of encapsulation. :)
Paolo
> + /* We do not support irqfd for classic I/O interrupts, because the
> + * classic interrupts are intermixed with the subchannel status, that
> + * is queried with test subchannel. We want to use vhost, though.
> + * Lets make sure to have vhost running and wire up the irq fd to
> + * land in qemu (and only the irq fd) in this code.
> + */
> + if (dev->vdev->guest_notifier_mask) {
> + dev->vdev->guest_notifier_mask(dev->vdev, n, false);
> + }
> + /* get lost events and re-inject */
> + if (dev->vdev->guest_notifier_pending &&
> + dev->vdev->guest_notifier_pending(dev->vdev, n)) {
> + event_notifier_set(notifier);
> + }
> + } else {
> + if (dev->vdev->guest_notifier_mask) {
> + dev->vdev->guest_notifier_mask(dev->vdev, n, true);
> + }
> + virtio_queue_set_guest_notifier_fd_handler(vq, false, with_irqfd);
> + event_notifier_cleanup(notifier);
[Qemu-devel] [PATCH 1/9] ide/macio: Fix macio DMA initialisation., Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 2/9] virtio-blk: fix unplug + virsh reboot, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 5/9] move socket_set_nodelay to osdep.c, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 4/9] slirp/tcp_subr.c: fix coding style in tcp_connect, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 6/9] sheepdog: accept URIs, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 7/9] sheepdog: use inet_connect to simplify connect code, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 9/9] block: for HMP commit() operations on 'all', skip non-COW drives, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 8/9] sheepdog: add support for connecting to unix domain socket, Stefan Hajnoczi, 2013/03/04