All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Zhang Chen <zhangckid@gmail.com>
Cc: Markus Armbruster <armbru@redhat.com>,
	 qemu-devel <qemu-devel@nongnu.org>,
	 "Dr . David Alan Gilbert" <dave@treblig.org>,
	Eric Blake <eblake@redhat.com>,
	 "Michael S . Tsirkin" <mst@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [PATCH V6 06/14] monitor: Update tracking iothread users with holder name
Date: Tue, 28 Apr 2026 09:26:05 +0200	[thread overview]
Message-ID: <877bpr5ywi.fsf@pond.sub.org> (raw)
In-Reply-To: <CAK3tnvLHHXoEVngnyUbeTeVdj3w997wSc6heOPJG6-aWmzNazg@mail.gmail.com> (Zhang Chen's message of "Mon, 27 Apr 2026 22:55:48 +0800")

Zhang Chen <zhangckid@gmail.com> writes:

> On Thu, Apr 23, 2026 at 8:44 PM Markus Armbruster <armbru@redhat.com> wrote:
>> Oh.
>>
>> PATCH 02 defines QAPI type IoThreadHolder as a union with two branches
>> for the two kinds of holders: one for block node holder, and one for QOM
>> object holder.  Both branches use a string to identify the holder.
>>
>> The C code in PATCH 02 uses just a string to identify the holder.  This
>> silently assumes that the strings for block nodes are distinct from the
>> strings for QOM objects.  True as long as we only use absolute QOM
>> paths: these start with '/', and block nodes can't.
>>
>> This patch shows me there's actually a third kind: monitor.  You use the
>> QOM object branch for it.  That's confusing; a monitor is not a QOM
>> object.  Moreover, you make yet another silent assumption: absolute QOM
>> paths do not start with "/monitor/".
>>
>> This is too much for me.
>>
>> Please use a separate IoThreadHolderKind value and IoThreadHolder branch
>> for each kind of holder.  The kinds I've seen so far are block-node, QOM
>> object, monitor.
>>
>> If Daniel Berrangé's "[PATCH RFC 00/17] monitor: turn QMP and HMP into
>> QOM objects" gets merged, kind monitor can go away.
>>
>> Use of just a string to identify the holder requires strings for
>> different kinds to be distinct.  The argument why they are must be
>> written down, simple, and likely to remain true.
>>
>> But I'd prefer to use IoThreadHolder instead of string.  No assumptions
>> necessary then.
>>
>> If this IoThreadHolder arguments make the calls ugly or overly verbose,
>> consider thin wrappers for each kind, i.e.
>>
>>     new_ctx = iothread_get_aio_context_block(iothread, bs);
>>
>> instead of
>>
>>     holder_name = bdrv_get_node_name(bs);
>>     new_ctx = iothread_get_aio_context(iothread, holder_name);
>>
>> and so forth.
>>
>> Questions?
>
> Thank you for the detailed explanation.
> You are right, in this patch I silent assumption: absolute QOM paths
> do not start with "/monitor/".
> Because the Daniel Berrangé's RFC patch and the monitor implementation
> is very special,
> it creates the iothread for itself. The iothread lifecycle is same
> with the monitor.
> It is not a general case like QOM and block node.
> Maybe no need for this case add a third kind here?

I don't know.  Or maybe I don't understand the question.



  reply	other threads:[~2026-04-28  7:27 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-10 15:04 [PATCH V6 00/14] iothread: Support tracking and querying IOThread holders Zhang Chen
2026-04-10 15:04 ` [PATCH V6 01/14] qapi/misc: Fix missed query-iothreads items Zhang Chen
2026-04-10 15:04 ` [PATCH V6 02/14] iothread: introduce iothread_ref/unref to track attached devices Zhang Chen
2026-04-21 14:15   ` Markus Armbruster
2026-04-27 14:55     ` Zhang Chen
2026-04-10 15:04 ` [PATCH V6 03/14] iothread: tracking iothread users with holder name Zhang Chen
2026-04-10 15:04 ` [PATCH V6 04/14] blockdev: Update " Zhang Chen
2026-04-10 15:04 ` [PATCH V6 05/14] block/export: track IOThread reference in BlockExport Zhang Chen
2026-04-10 15:04 ` [PATCH V6 06/14] monitor: Update tracking iothread users with holder name Zhang Chen
2026-04-23 12:44   ` Markus Armbruster
2026-04-27 14:55     ` Zhang Chen
2026-04-28  7:26       ` Markus Armbruster [this message]
2026-04-29  5:34         ` Zhang Chen
2026-04-10 15:04 ` [PATCH V6 07/14] virtio-vq-mapping: track iothread-vq-mapping references using device path Zhang Chen
2026-04-10 15:04 ` [PATCH V6 08/14] virtio: use iothread_get/put_aio_context for thread pinning Zhang Chen
2026-04-10 15:04 ` [PATCH V6 09/14] net/colo: track IOThread references using path-based holder Zhang Chen
2026-04-10 15:04 ` [PATCH V6 10/14] virtio-balloon: Update tracking iothread users with holder name Zhang Chen
2026-04-10 15:04 ` [PATCH V6 11/14] vfio-user/proxy: " Zhang Chen
2026-04-10 15:04 ` [PATCH V6 12/14] xen-block: " Zhang Chen
2026-04-10 15:04 ` [PATCH V6 13/14] qapi: examine IOThread attachment status via query-iothreads Zhang Chen
2026-04-23 13:09   ` Markus Armbruster
2026-04-27 15:10     ` Zhang Chen
2026-04-10 15:04 ` [PATCH V6 14/14] iothread: simplify API by merging iothread_get_aio_context variants Zhang Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877bpr5ywi.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=dave@treblig.org \
    --cc=eblake@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=zhangckid@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.