All of lore.kernel.org
 help / color / mirror / Atom feed
From: Klaus Jensen <its@irrelevant.dk>
To: Jinhao Fan <fanjinhao21s@ict.ac.cn>
Cc: qemu-devel@nongnu.org, kbusch@kernel.org, stefanha@gmail.com,
	"open list:nvme" <qemu-block@nongnu.org>
Subject: Re: [PATCH 2/4] hw/nvme: add option to (de)assert irq with eventfd
Date: Tue, 16 Aug 2022 13:20:10 +0200	[thread overview]
Message-ID: <Yvt9aiRHrxA7GklC@apples> (raw)
In-Reply-To: <20220811153739.3079672-3-fanjinhao21s@ict.ac.cn>

[-- Attachment #1: Type: text/plain, Size: 1462 bytes --]

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 <fanjinhao21s@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
;)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2022-08-16 11:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-11 15:37 [PATCH 0/4] hw/nvme: add irqfd support Jinhao Fan
2022-08-11 15:37 ` [PATCH 1/4] hw/nvme: avoid unnecessary call to irq (de)assertion functions Jinhao Fan
2022-08-16 15:24   ` Stefan Hajnoczi
2022-08-17  5:42     ` Jinhao Fan
2022-08-11 15:37 ` [PATCH 2/4] hw/nvme: add option to (de)assert irq with eventfd Jinhao Fan
2022-08-16 11:20   ` Klaus Jensen [this message]
2022-08-17  5:36     ` Jinhao Fan
2022-08-23 10:58   ` Klaus Jensen
2022-08-11 15:37 ` [PATCH 3/4] hw/nvme: use irqfd to send interrupts Jinhao Fan
2022-08-11 15:37 ` [PATCH 4/4] hw/nvme: add MSI-x mask handlers for irqfd Jinhao Fan
2022-08-16 10:46   ` Klaus Jensen
2022-08-17  5:35     ` Jinhao Fan
2022-08-23 14:43     ` Jinhao Fan
2022-08-24 11:22       ` Klaus Jensen
2022-08-24 13:16         ` Jinhao Fan
2022-08-23 11:04   ` Klaus Jensen
2022-08-16  1:54 ` [PATCH 0/4] hw/nvme: add irqfd support Jinhao Fan
2022-08-24 20:15 ` Klaus Jensen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Yvt9aiRHrxA7GklC@apples \
    --to=its@irrelevant.dk \
    --cc=fanjinhao21s@ict.ac.cn \
    --cc=kbusch@kernel.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.