On Aug 11 23:37, Jinhao Fan wrote: > When the new option 'irq-eventfd' is turned on, the IO emulation code > signals an eventfd when it want to (de)assert an irq. The main loop > eventfd handler does the actual irq (de)assertion. This paves the way > for iothread support since QEMU's interrupt emulation is not thread > safe. > > Asserting and deasseting irq with eventfd has some performance > implications. For small queue depth it increases request latency but > for large queue depth it effectively coalesces irqs. > > Comparision (KIOPS): > > QD 1 4 16 64 > QEMU 38 123 210 329 > irq-eventfd 32 106 240 364 > > Signed-off-by: Jinhao Fan <fanjinhao...@ict.ac.cn> > --- > hw/nvme/ctrl.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++-- > hw/nvme/nvme.h | 4 +++ > 2 files changed, 90 insertions(+), 3 deletions(-) > > diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c > index bd3350d7e0..8a1c5ce3e1 100644 > --- a/hw/nvme/ctrl.c > +++ b/hw/nvme/ctrl.c > @@ -7675,6 +7757,7 @@ static Property nvme_props[] = { > DEFINE_PROP_BOOL("use-intel-id", NvmeCtrl, params.use_intel_id, false), > DEFINE_PROP_BOOL("legacy-cmb", NvmeCtrl, params.legacy_cmb, false), > DEFINE_PROP_BOOL("ioeventfd", NvmeCtrl, params.ioeventfd, false), > + DEFINE_PROP_BOOL("irq-eventfd", NvmeCtrl, params.irq_eventfd, false),
This option does not seem to change anything - the value is never used ;)
signature.asc
Description: PGP signature