On Wed, Feb 25, 2026 at 6:55 PM Markus Armbruster <[email protected]> wrote:
>
> Zhang Chen <[email protected]> writes:
>
> > On Tue, Feb 24, 2026 at 4:42 PM Markus Armbruster <[email protected]> wrote:
> >>
> >> Zhang Chen <[email protected]> writes:
> >>
> >> > On Tue, Feb 17, 2026 at 3:51 PM Markus Armbruster <[email protected]> 
> >> > wrote:
> >> >>
> >> >> Zhang Chen <[email protected]> writes:
> >> >>
> >> >> > Extend the 'IOThreadInfo' structure to include attachment metrics.
> >> >> > This allows users to monitor how many devices are associated with
> >> >> > a specific IOThread and identify them by their QOM paths.
> >> >> >
> >> >> > New fields added to IOThreadInfo:
> >> >> > - @attached-cnt: An integer representing the number of devices
> >> >> >   currently using this IOThread's AioContext.
> >> >> > - @attached-dev: A string containing a delimited list ("|") of
> >> >> >   QOM paths for the attached devices.
> >> >> >
> >> >> > These fields are also exposed via the Human Monitor Interface (HMP)
> >> >> > command 'info iothreads' to assist with manual debugging and
> >> >> > performance tuning.
> >> >> >
> >> >> > Example QMP output:
> >> >> > {
> >> >> >     "id": "iothread0",
> >> >> >     "thread-id": 3134,
> >> >> >     "attached-cnt": 2,
> >> >> >     "attached-dev": "/machine/peripheral/blk1/virtio-backend | 
> >> >> > /machine/peripheral/blk0/virtio-backend",
> >> >> >     ...
> >> >> > }
> >> >> >
> >> >> > Signed-off-by: Zhang Chen <[email protected]>
> >> >>
> >> >> [...]
> >> >>
> >> >> > diff --git a/qapi/misc.json b/qapi/misc.json
> >> >> > index 1f5062df2a..ca53638684 100644
> >> >> > --- a/qapi/misc.json
> >> >> > +++ b/qapi/misc.json
> >> >> > @@ -76,6 +76,19 @@
> >> >> >  #
> >> >> >  # @thread-id: ID of the underlying host thread
> >> >> >  #
> >> >> > +# @attached-cnt: The parameter is a counter indicating how many
> >> >> > +#     active devices are currently associated with this iothread
> >> >> > +#     (e.g. virtio-blk).  In hotplug scenarios, users can
> >> >> > +#     pre-allocate multiple iothread objects to serve as a persistent
> >> >> > +#     thread pool.  When a device is hot-unplugged, the corresponding
> >> >> > +#     IOThread is released but remains available, allowing subsequent
> >> >> > +#     hot-plugged devices to attach to and reuse the existing thread.
> >> >> > +#     (since 11.0)
> >> >> > +#
> >> >> > +# @attached-dev: A list of QOM paths for the devices currently
> >> >> > +#     associated with this IOThread, delimited by " | ".
> >> >> > +#     Returns "none" if no devices are attached. (since 11.0)
>
> [...]
>
> >> >>
> >> >> QAPI schema design maxim: do not encode structured data as strings.
> >> >> @attached-devs should be an array of QOM paths instead.
> >> >
> >> > OK, will fix in next version.
> >>
> >> Thanks!
> >>
> >> >> Unless I misunderstand your docs, @attached-cnt is the number of QOM
> >> >> paths in @attached-dev, i.e. @attached-dev is redundant.  If this is the
> >> >> case, drop it.  If it isn't, educate me :)
> >> >
> >> > As Stefan's comments, I try to address more specific needs:
> >> > https://mail.gnu.org/archive/html/qemu-devel/2026-02/msg01892.html
> >>
> >> As far as I can tell, Stefan asked for the QOM paths of attached
> >> devices.  @attached-dev provides it.  Good.  Why have @attached-cnt as
> >> well?
> >>
> >
> > Users can obtain the quantity more conveniently, avoiding the need to
> > count the number of @attached-dev.
> > If you think the @attached-cnt is redundant, I will remove it in next 
> > version.
>
> Please do.

OK~ Thank you for the suggestion.

Thanks
Chen

>
> [...]
>

Reply via email to