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 > > [...] >
