All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] hw/nvme: add irqfd support
@ 2022-08-25 20:14 Klaus Jensen
  2022-08-25 20:14 ` [PATCH v3 1/2] hw/nvme: support irq(de)assertion with eventfd Klaus Jensen
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Klaus Jensen @ 2022-08-25 20:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Keith Busch, Klaus Jensen, qemu-block, Jinhao Fan, stefanha,
	Klaus Jensen

From: Klaus Jensen <k.jensen@samsung.com>

This is a re-spin of Jinhao's irqfd support series that fixes msix
vector masking/unmasking to work correctly.

I kept being bugged out about that msi route not getting updated, so I
hit the code into submission with a hammer.

I finally noticed the core issue:

  1. The vector notifiers was never set because msix is not enabled at
     the point where nvme_init_pci() is called.

     Move this call to nvme_start_ctrl().

Since the unmask callback was suddenly getting called now, another fix
was needed:

  2. Call kvm_irqchip_add_irqfd_notifier_gsi() in the unmask handler -
     not in nvme_init_irq_notifier(). The vectors may potentially be
     masked/unmasked and shall cause a pair of add_irqfd and
     remove_irqfd calls. Removing it from nvme_init_irq_notifier() makes
     sure we do not try to double add.

Now it does what it is supposed to; no hacks required :)

Jinhao Fan (2):
  hw/nvme: support irq(de)assertion with eventfd
  hw/nvme: use KVM irqfd when available

 hw/nvme/ctrl.c       | 261 ++++++++++++++++++++++++++++++++++++++++---
 hw/nvme/nvme.h       |   6 +
 hw/nvme/trace-events |   3 +
 3 files changed, 253 insertions(+), 17 deletions(-)

-- 
2.37.2



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-08-26  6:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-25 20:14 [PATCH v3 0/2] hw/nvme: add irqfd support Klaus Jensen
2022-08-25 20:14 ` [PATCH v3 1/2] hw/nvme: support irq(de)assertion with eventfd Klaus Jensen
2022-08-25 20:14 ` [PATCH v3 2/2] hw/nvme: use KVM irqfd when available Klaus Jensen
2022-08-26  2:03 ` [PATCH v3 0/2] hw/nvme: add irqfd support Jinhao Fan
2022-08-26  6:50   ` Klaus Jensen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.