[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH 11/40] virtio: add AioContext-specific function for
From: |
Paolo Bonzini |
Subject: |
[Qemu-block] [PATCH 11/40] virtio: add AioContext-specific function for host notifiers |
Date: |
Tue, 24 Nov 2015 19:01:02 +0100 |
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/virtio/virtio.c | 16 ++++++++++++++++
include/hw/virtio/virtio.h | 2 ++
2 files changed, 18 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 0e9fff6..c835451 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1835,6 +1835,22 @@ static void
virtio_queue_host_notifier_read(EventNotifier *n)
}
}
+void virtio_queue_aio_set_host_notifier_handler(VirtQueue *vq, AioContext *ctx,
+ bool assign, bool set_handler)
+{
+ if (assign && set_handler) {
+ aio_set_event_notifier(ctx, &vq->host_notifier, true,
+ virtio_queue_host_notifier_read);
+ } else {
+ aio_set_event_notifier(ctx, &vq->host_notifier, true, NULL);
+ }
+ if (!assign) {
+ /* Test and clear notifier before after disabling event,
+ * in case poll callback didn't have time to run. */
+ virtio_queue_host_notifier_read(&vq->host_notifier);
+ }
+}
+
void virtio_queue_set_host_notifier_fd_handler(VirtQueue *vq, bool assign,
bool set_handler)
{
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 108cdb0..4ce01a1 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -248,6 +248,8 @@ void virtio_queue_set_guest_notifier_fd_handler(VirtQueue
*vq, bool assign,
EventNotifier *virtio_queue_get_host_notifier(VirtQueue *vq);
void virtio_queue_set_host_notifier_fd_handler(VirtQueue *vq, bool assign,
bool set_handler);
+void virtio_queue_aio_set_host_notifier_handler(VirtQueue *vq, AioContext *ctx,
+ bool assign, bool set_handler);
void virtio_queue_notify_vq(VirtQueue *vq);
void virtio_irq(VirtQueue *vq);
VirtQueue *virtio_vector_first_queue(VirtIODevice *vdev, uint16_t vector);
--
1.8.3.1
- [Qemu-block] [PATCH 06/40] virtio: introduce virtqueue_alloc_element, (continued)
- [Qemu-block] [PATCH 06/40] virtio: introduce virtqueue_alloc_element, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 04/40] virtio: introduce qemu_get/put_virtqueue_element, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 07/40] virtio: slim down allocation of VirtQueueElements, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 09/40] vring: make vring_enable_notification return void, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 08/40] vring: slim down allocation of VirtQueueElements, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 05/40] virtio: read/write the VirtQueueElement a field at a time, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 10/40] virtio: combine the read of a descriptor, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 12/40] virtio: export vring_notify as virtio_should_notify, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 13/40] virtio-blk: fix "disabled data plane" mode, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 14/40] virtio-blk: do not use vring in dataplane, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 11/40] virtio: add AioContext-specific function for host notifiers,
Paolo Bonzini <=
- [Qemu-block] [PATCH 15/40] virtio-scsi: do not use vring in dataplane, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 16/40] vring: remove, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 18/40] qemu-thread: introduce QemuRecMutex, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 17/40] iothread: release AioContext around aio_poll, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 20/40] aio: rename bh_lock to list_lock, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 19/40] aio: convert from RFifoLock to QemuRecMutex, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 22/40] aio: make ctx->list_lock a QemuLockCnt, subsuming ctx->walking_bh, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 21/40] qemu-thread: introduce QemuLockCnt, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 23/40] qemu-thread: optimize QemuLockCnt with futexes on Linux, Paolo Bonzini, 2015/11/24
- [Qemu-block] [PATCH 24/40] aio: tweak walking in dispatch phase, Paolo Bonzini, 2015/11/24