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.

[...]


Reply via email to