dataplane interrupt handler doesn't support msi hw/block/dataplane/virtio-blk.c commit 1010cadf62332017648abee0d7a3dc7f2eef9632 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_blk_req_complete calls 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.