On Tue, Sep 15, 2026 at 06:16:53PM +0800, Zhang Chen wrote:
> diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
> index 91701ddf33..d7dd24d951 100644
> --- a/monitor/hmp-cmds.c
> +++ b/monitor/hmp-cmds.c
> @@ -246,11 +246,31 @@ void hmp_info_iothreads(MonitorHMP *hmp, const QDict
> *qdict)
> IOThreadInfoList *info_list = qmp_query_iothreads(NULL);
> IOThreadInfoList *info;
> IOThreadInfo *value;
> + IOThreadHolderList *h;
>
> for (info = info_list; info; info = info->next) {
> value = info->value;
> monitor_hmp_printf(hmp, "%s:\n", value->id);
> monitor_hmp_printf(hmp, " thread_id=%" PRId64 "\n",
> value->thread_id);
> + monitor_hmp_printf(hmp, " holders=");
> + for (h = value->holders; h; h = h->next) {
> + IOThreadHolder *holder = h->value;
> +
> + switch (holder->type) {
> + case IO_THREAD_HOLDER_KIND_BLOCK_EXPORT:
> + monitor_hmp_printf(hmp, "[block-export: %s]",
> + holder->u.block_export.export_id);
> + break;Kevin: Special-casing block exports is unfortunate. Other IOThread users tend to be full-blown Objects. Do you think BlockExport should become an Object with a path (e.g. /block-exports/ similar to how /audiodevs and other object types are in the QOM tree)? What I'm thinking is that block-export-add/block-export-del remain the commands for managing the lifetime of exports - we don't use --object syntax. But simply making BlockExport an Object would make this and maybe other future changes cleaner (no special cases for non-Objects).
signature.asc
Description: PGP signature
