dataplane interrupt handler doesn't support msi
Bug #1771042 reported by
eric hoffman
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Invalid
|
Undecided
|
Unassigned |
Bug Description
hw/block/
in the function notify_guest_bh, the function virtio_notify_irqfd is called
to deliver the interrupt corresponding to the vq
however, without the dataplane, hw/block/
virtio_notify to deliver the interrupt (immediately). this goes though
a slightly more involved path that calls virtio_pci_notify which includes
a case to handle msi interrupts.
so, msi interrupts with block devices aren't serviced when using dataplane
batching.
Changed in qemu: | |
status: | New → Invalid |
To post a comment you must log in.
diff --git a/hw/block/ dataplane/ virtio- blk.c b/hw/block/ dataplane/ virtio- blk.c dataplane/ virtio- blk.c dataplane/ virtio- blk.c guest_bh( void *opaque)
unsigned i = j + ctzl(bits);
VirtQueue *vq = virtio_ get_queue( s->vdev, i);
index 101f32c..31d9eb8 100644
--- a/hw/block/
+++ b/hw/block/
@@ -73,7 +73,7 @@ static void notify_
- virtio_ notify_ irqfd(s- >vdev, vq); notify( s->vdev, vq);
+ virtio_
bits &= bits - 1; /* clear right-most bit */
}