qemu/hw/nvme
Klaus Jensen d38cc6fd1c hw/nvme: reenable cqe batching
Commit 2e53b0b450 ("hw/nvme: Use ioeventfd to handle doorbell
updates") had the unintended effect of disabling batching of CQEs.

This patch changes the sq/cq timers to bottom halfs and instead of
calling nvme_post_cqes() immediately (causing an interrupt per cqe), we
defer the call.

                   | iops
  -----------------+------
    baseline       | 138k
    +cqe batching  | 233k

Fixes: 2e53b0b450 ("hw/nvme: Use ioeventfd to handle doorbell updates")
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Jinhao Fan <fanjinhao21s@ict.ac.cn>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
2022-11-02 09:23:05 +01:00
..
ctrl.c hw/nvme: reenable cqe batching 2022-11-02 09:23:05 +01:00
dif.c hw/nvme: add new command abort case 2022-06-03 21:48:24 +02:00
dif.h hw/nvme: 64-bit pi support 2022-03-03 09:30:21 +01:00
Kconfig hw/nvme: move nvme emulation out of hw/block 2021-05-17 09:19:00 +02:00
meson.build hw/nvme: move nvme emulation out of hw/block 2021-05-17 09:19:00 +02:00
ns.c hw/nvme: force nvme-ns param 'shared' to false if no nvme-subsys node 2022-07-15 10:40:33 +02:00
nvme.h hw/nvme: reenable cqe batching 2022-11-02 09:23:05 +01:00
subsys.c hw/nvme: Add support for Secondary Controller List 2022-06-23 23:24:28 +02:00
trace-events hw/nvme: Add trace events for shadow doorbell buffer 2022-07-15 10:40:33 +02:00
trace.h hw/nvme: move nvme emulation out of hw/block 2021-05-17 09:19:00 +02:00