Zhang Chen <[email protected]> writes:
> On Fri, Jan 16, 2026 at 4:18 PM Markus Armbruster <[email protected]> wrote:
>>
>> Zhang Chen <[email protected]> writes:
>>
>> > On Thu, Jan 8, 2026 at 8:12 PM Markus Armbruster <[email protected]> wrote:
>> >>
>> >> Zhang Chen <[email protected]> writes:
>> >>
>> >> > The thread_status depends on struct IOThreadInfo's
>> >> > 'attached': 'bool'. Show in the qmp/hmp CMD with
>> >> > 'attached' or 'detached'.
>> >> >
>> >> > Signed-off-by: Zhang Chen <[email protected]>
>> >> > ---
>> >> > iothread.c | 1 +
>> >> > monitor/hmp-cmds.c | 2 ++
>> >> > qapi/misc.json | 6 ++++++
>> >> > 3 files changed, 9 insertions(+)
>> >> >
>> >> > diff --git a/iothread.c b/iothread.c
>> >> > index 38e38fb44d..fb4898e491 100644
>> >> > --- a/iothread.c
>> >> > +++ b/iothread.c
>> >> > @@ -358,6 +358,7 @@ static int query_one_iothread(Object *object, void
>> >> > *opaque)
>> >> > info = g_new0(IOThreadInfo, 1);
>> >> > info->id = iothread_get_id(iothread);
>> >> > info->thread_id = iothread->thread_id;
>> >> > + info->attached = iothread->attached;
>> >> > info->poll_max_ns = iothread->poll_max_ns;
>> >> > info->poll_grow = iothread->poll_grow;
>> >> > info->poll_shrink = iothread->poll_shrink;
>> >> > diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
>> >> > index 33a88ce205..84b01737cf 100644
>> >> > --- a/monitor/hmp-cmds.c
>> >> > +++ b/monitor/hmp-cmds.c
>> >> > @@ -197,6 +197,8 @@ void hmp_info_iothreads(Monitor *mon, const QDict
>> >> > *qdict)
>> >> > value = info->value;
>> >> > monitor_printf(mon, "%s:\n", value->id);
>> >> > monitor_printf(mon, " thread_id=%" PRId64 "\n",
>> >> > value->thread_id);
>> >> > + monitor_printf(mon, " thread_status=%s" "\n",
>> >> > + value->attached ? "attached" : "detached");
>> >> > monitor_printf(mon, " poll-max-ns=%" PRId64 "\n",
>> >> > value->poll_max_ns);
>> >> > monitor_printf(mon, " poll-grow=%" PRId64 "\n",
>> >> > value->poll_grow);
>> >> > monitor_printf(mon, " poll-shrink=%" PRId64 "\n",
>> >> > value->poll_shrink);
>> >> > diff --git a/qapi/misc.json b/qapi/misc.json
>> >> > index 6153ed3d04..2eea920bd2 100644
>> >> > --- a/qapi/misc.json
>> >> > +++ b/qapi/misc.json
>> >> > @@ -76,6 +76,9 @@
>> >> > #
>> >> > # @thread-id: ID of the underlying host thread
>> >> > #
>> >> > +# @attached: flag to show current iothread attached status
>> >>
>> >> What does "attached status" actually mean?
>> >
>> > This flag means weather the "-object iothread" already been used by a
>> > real device.
>> > In hotplug scenario, user can add multiple "-object iothread" and
>> > multiple devices (like virtio-blk).
>> > When user hotunplug the devices can keep the iothreads as a thread
>> > pool, following the new
>> > hotplug devices can attach to the released iothread.
>>
>> Why would a management application or human user want to know this?
>
> Because some usercases already been changed.
> This demand comes from Cloud Native ecosystem.
> User want to manage resources more flexible like containers (Kata container).
> The real workload maybe changed(runc) in the VM without VM reboot,
> It may need hotplug/unplug different multi disks with multi iothreads to meet
> high level scheduler's needs(like K8s).
In your v2, you added a (broken) PATCH 4 that describes @attached as
follows:
The ``attached`` parameter is a flag to show whether the iothread
is attached to an actual device(for example virtio-blk). In hotplug
scenario, user can add multiple "-object iothread" and multiple
devices (like virtio-blk). When user hotunplug the devices can keep
the iothreads as a thread pool, following the new hotplug devices can
attach to the released iothread.
Should this information go into the QAPI schema, too?
>> The answer should lead us to better doc text.
>>
>
> OK, I will add it in next version.
[...]