[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 0/2] hw/nvme: add irqfd support
From: |
Klaus Jensen |
Subject: |
[PATCH v3 0/2] hw/nvme: add irqfd support |
Date: |
Thu, 25 Aug 2022 22:14:52 +0200 |
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
- [PATCH v3 0/2] hw/nvme: add irqfd support,
Klaus Jensen <=