On Fri, Feb 6, 2026 at 12:11 AM Stefan Hajnoczi <[email protected]> wrote: > > On Mon, Jan 26, 2026 at 4:52 AM Zhang Chen <[email protected]> wrote: > > > > QEMU Need a flag to show current iothread attached status > > when hotplug multi iothreads. For example virtio-blk. > > > > Signed-off-by: Zhang Chen <[email protected]> > > --- > > include/system/iothread.h | 1 + > > iothread.c | 5 +++++ > > 2 files changed, 6 insertions(+) > > > > diff --git a/include/system/iothread.h b/include/system/iothread.h > > index e26d13c6c7..3d00474523 100644 > > --- a/include/system/iothread.h > > +++ b/include/system/iothread.h > > @@ -32,6 +32,7 @@ struct IOThread { > > QemuSemaphore init_done_sem; /* is thread init done? */ > > bool stopping; /* has iothread_stop() been called? */ > > bool running; /* should iothread_run() continue? */ > > + bool attached; /* Whether or not attached to device */ > > int thread_id; > > > > /* AioContext poll parameters */ > > diff --git a/iothread.c b/iothread.c > > index caf68e0764..38e38fb44d 100644 > > --- a/iothread.c > > +++ b/iothread.c > > @@ -94,6 +94,7 @@ void iothread_stop(IOThread *iothread) > > return; > > } > > iothread->stopping = true; > > + iothread->attached = false; > > aio_bh_schedule_oneshot(iothread->ctx, iothread_stop_bh, iothread); > > qemu_thread_join(&iothread->thread); > > } > > @@ -199,6 +200,9 @@ static void iothread_init(EventLoopBase *base, Error > > **errp) > > */ > > iothread_init_gcontext(iothread, thread_name); > > > > + /* Clear iothread attached flag for init gcontext */ > > + iothread->attached = false; > > + > > iothread_set_aio_context_params(base, &local_error); > > if (local_error) { > > error_propagate(errp, local_error); > > @@ -336,6 +340,7 @@ char *iothread_get_id(IOThread *iothread) > > > > AioContext *iothread_get_aio_context(IOThread *iothread) > > { > > + iothread->attached = true; > > return iothread->ctx; > > } > > This patch will still report attached = true after all users have gone > away. A reference counting API is needed because IOThread users can > come and go (e.g. device hot unplug or block exports being removed). >
Make sense. I will add another "int attached_count" in the struct IOThread next version. Thanks Chen > Stefan
