]> www.infradead.org Git - qemu-nvme.git/commit
hw/nvme: reenable cqe batching
authorKlaus Jensen <k.jensen@samsung.com>
Wed, 19 Oct 2022 20:28:02 +0000 (22:28 +0200)
committerKlaus Jensen <k.jensen@samsung.com>
Wed, 2 Nov 2022 08:23:05 +0000 (09:23 +0100)
commitd38cc6fd1cafc3f834bb529f79bfc23089e9e54f
tree4bc5c8dfe26210473e957a84ab5e25f4678e078f
parenta11f65ec1b8adcb012b89c92819cbda4dc25aaf1
hw/nvme: reenable cqe batching

Commit 2e53b0b45024 ("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: 2e53b0b45024 ("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>
hw/nvme/ctrl.c
hw/nvme/nvme.h