at 11:37 PM, Jinhao Fan <fanjinhao...@ict.ac.cn> wrote: > This patch series changes qemu-nvme's interrupt emulation to use event > notifiers, which can ensure thread-safe interrupt delivery when iothread > is used. In the first two patches, I convert qemu-nvme's IO emulation > logic to send irq via eventfd, so that the actual assertion and > deassertion is always done in the main loop thread with BQL held. In the > third patch, support is added to send irq via KVM irqfd, bypassing > qemu's MSI-x emulation. In the last patch, I add MSI-x mask handlers > when irqfd is enabled so that qemu-nvme knows which vector is masked > even when qemu's MSI-x emulation is bypassed. > > Jinhao Fan (4): > hw/nvme: avoid unnecessary call to irq (de)assertion functions > hw/nvme: add option to (de)assert irq with eventfd > hw/nvme: use irqfd to send interrupts > hw/nvme: add MSI-x mask handlers for irqfd > > hw/nvme/ctrl.c | 251 +++++++++++++++++++++++++++++++++++++++---- > hw/nvme/nvme.h | 7 ++ > hw/nvme/trace-events | 3 + > 3 files changed, 243 insertions(+), 18 deletions(-) > > -- > 2.25.1
Ping~ Thanks!