From: "Michael S. Tsirkin" <mst@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, "Markus Armbruster" <armbru@redhat.com>,
"Michal Privoznik" <mprivozn@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
qemu-block@nongnu.org, "Daniel P. Berrangé" <berrange@redhat.com>,
"Eric Blake" <eblake@redhat.com>, "Kevin Wolf" <kwolf@redhat.com>,
"Hanna Reitz" <hreitz@redhat.com>
Subject: Re: [PATCH v2 0/2] virtio-blk: add iothread-vq-mapping parameter
Date: Tue, 3 Oct 2023 09:12:56 -0400 [thread overview]
Message-ID: <20231003091237-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20230918161604.1400051-1-stefanha@redhat.com>
On Mon, Sep 18, 2023 at 12:16:02PM -0400, Stefan Hajnoczi wrote:
> virtio-blk and virtio-scsi devices need a way to specify the mapping between
> IOThreads and virtqueues. At the moment all virtqueues are assigned to a single
> IOThread or the main loop. This single thread can be a CPU bottleneck, so it is
> necessary to allow finer-grained assignment to spread the load. With this
> series applied, "pidstat -t 1" shows that guests with -smp 2 or higher are able
> to exploit multiple IOThreads.
>
> This series introduces command-line syntax for the new iothread-vq-mapping
> property is as follows:
>
> --device '{"driver":"virtio-blk-pci","iothread-vq-mapping":[{"iothread":"iothread0","vqs":[0,1,2]},...]},...'
>
> IOThreads are specified by name and virtqueues are specified by 0-based
> index.
>
> It will be common to simply assign virtqueues round-robin across a set
> of IOThreads. A convenient syntax that does not require specifying
> individual virtqueue indices is available:
>
> --device '{"driver":"virtio-blk-pci","iothread-vq-mapping":[{"iothread":"iothread0"},{"iothread":"iothread1"},...]},...'
>
> There is no way to reassign virtqueues at runtime and I expect that to be a
> very rare requirement.
>
> Note that JSON --device syntax is required for the iothread-vq-mapping
> parameter because it's non-scalar.
>
> Based-on: 20230912231037.826804-1-stefanha@redhat.com ("[PATCH v3 0/5] block-backend: process I/O in the current AioContext")
Acked-by: Michael S. Tsirkin <mst@redhat.com>
More of a block thingy so pls use that tree.
> Stefan Hajnoczi (2):
> qdev: add IOThreadVirtQueueMappingList property type
> virtio-blk: add iothread-vq-mapping parameter
>
> qapi/virtio.json | 30 +++++
> hw/block/dataplane/virtio-blk.h | 3 +
> include/hw/qdev-properties-system.h | 4 +
> include/hw/virtio/virtio-blk.h | 2 +
> hw/block/dataplane/virtio-blk.c | 163 +++++++++++++++++++++-------
> hw/block/virtio-blk.c | 92 ++++++++++++++--
> hw/core/qdev-properties-system.c | 47 ++++++++
> 7 files changed, 287 insertions(+), 54 deletions(-)
>
> --
> 2.41.0
next prev parent reply other threads:[~2023-10-03 13:14 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-18 16:16 [PATCH v2 0/2] virtio-blk: add iothread-vq-mapping parameter Stefan Hajnoczi
2023-09-18 16:16 ` [PATCH v2 1/2] qdev: add IOThreadVirtQueueMappingList property type Stefan Hajnoczi
2023-10-14 7:35 ` Markus Armbruster
2023-12-19 15:13 ` Stefan Hajnoczi
2023-12-19 16:08 ` Kevin Wolf
2023-12-20 7:39 ` Markus Armbruster
2023-12-11 13:56 ` Kevin Wolf
2023-12-11 15:32 ` Markus Armbruster
2023-12-11 21:15 ` Stefan Hajnoczi
2023-12-19 7:43 ` Markus Armbruster
2023-12-12 9:59 ` Kevin Wolf
2023-09-18 16:16 ` [PATCH v2 2/2] virtio-blk: add iothread-vq-mapping parameter Stefan Hajnoczi
2023-10-03 13:12 ` Michael S. Tsirkin [this message]
2023-11-02 14:10 ` [PATCH v2 0/2] " Kevin Wolf
2023-11-07 3:00 ` Stefan Hajnoczi
2023-11-07 10:20 ` Kevin Wolf
2023-11-07 3:29 ` Stefan Hajnoczi
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=20231003091237-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=hreitz@redhat.com \
--cc=kwolf@redhat.com \
--cc=mprivozn@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.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.