All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Cc: qemu-block@nongnu.org, qemu-devel@nongnu.org,
	pbonzini@redhat.com, armbru@redhat.com, eblake@redhat.com,
	hreitz@redhat.com
Subject: Re: [PATCH v9 4/7] qapi: add blockdev-replace command
Date: Tue, 18 Nov 2025 10:47:49 +0100	[thread overview]
Message-ID: <aRxAxRGJOqLetXHM@redhat.com> (raw)
In-Reply-To: <4b8cade1-ecd3-4fa7-9082-7f2f1ef0b8a9@yandex-team.ru>

Am 18.11.2025 um 08:37 hat Vladimir Sementsov-Ogievskiy geschrieben:
> On 17.11.25 13:49, Kevin Wolf wrote:
> > Hi Vladimir,
> > 
> > I remembered this series and wanted to check what the current status is,
> > because I seemed to remember that the next step was that you would send
> > a new version. But reading it again, you're probably waiting for more
> > input? Let's try to get this finished.
> 
> I think yes, I was waiting, but then switched to other tasks.
> 
> > 
> > Am 02.04.2025 um 15:05 hat Vladimir Sementsov-Ogievskiy geschrieben:
> > > On 18.10.24 16:59, Kevin Wolf wrote:
> > > > If we want to get rid of the union, I think the best course of action
> > > > would unifying the namespaces (so that nodes, exports and devices can't
> > > > share the same ID) and then we could just accept a universal 'id' along
> > > > with 'child'.
> > > 
> > > Maybe we can go this way even without explicit restriction (which
> > > should some how go through deprecation period, etc), but simply look
> > > for the id among nodes, devices and exports and if found more than one
> > > parent - fail.
> > > 
> > > And we document, that id should not be ambiguous, should not match more
> > > than one parent object. So, those who want to use new command will care
> > > to make unique ids.
> > 
> > I don't think such a state is very pretty, but it would be okay for me
> > as an intermediate state while we go through a deprecation period to
> > restrict IDs accordingly.
> > 
> > So we could start with blockdev-replace returning an error on ambiguous
> > IDs and at the same time deprecate them, and only later we would make
> > creating nodes/devices/exports with the same ID an error.
> > 
> 
> Hmm, the only question remains, is what/how to deprecate exactly?
> 
> We want to deprecate user's possibility to set intersecting
> IDs for exports / devices / block-nodes? I think, we don't
> have a QAPI-native way to deprecate such thing..

We don't have to be able to express every deprecation in the schema. If
it can be expressed, that's nice, but docs/about/deprecated.rst is the
important part.

> May be, add new "uuid" parameter, and deprecate its absence (I doubt
> that we can do such deprecation too). And deprecate old IDs? But we
> can't deprecate QOM path for this..

I don't think renaming options is necessary.

> Hmm, or move to QOM paths for block-nodes and exports? And deprecate
> export names and node names?

That would only make sense if we converted the block layer to a QOM
class hierarchy, which would be a project of its own.

> Or we can just deprecate intersecting IDs in documentation and start
> to print warning, when user make intersecting IDs? But nobody reads
> warnings..
> 
> Is there a proper way to deprecate such things?

The latter is what I would suggest. docs/about/deprecated.rst and
printing warnings. I think libvirt already keeps all IDs distinct
anyway, so for a large part of users nothing will change.

Kevin



  reply	other threads:[~2025-11-18  9:48 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-26 11:53 [PATCH v9 0/7] blockdev-replace Vladimir Sementsov-Ogievskiy
2024-06-26 11:53 ` [PATCH v9 1/7] block-backend: blk_root(): drop const specifier on return type Vladimir Sementsov-Ogievskiy
2024-06-26 11:53 ` [PATCH v9 2/7] block/export: add blk_by_export_id() Vladimir Sementsov-Ogievskiy
2024-07-18 11:48   ` Markus Armbruster
2024-07-19 10:59     ` Vladimir Sementsov-Ogievskiy
2024-06-26 11:53 ` [PATCH v9 3/7] block: make bdrv_find_child() function public Vladimir Sementsov-Ogievskiy
2024-06-26 11:53 ` [PATCH v9 4/7] qapi: add blockdev-replace command Vladimir Sementsov-Ogievskiy
2024-07-18 12:00   ` Markus Armbruster
2024-07-19 16:00     ` Vladimir Sementsov-Ogievskiy
2024-10-02 14:41   ` Vladimir Sementsov-Ogievskiy
2024-10-04 17:01     ` Vladimir Sementsov-Ogievskiy
2024-10-18 13:59       ` Kevin Wolf
2025-04-02 13:05         ` Vladimir Sementsov-Ogievskiy
2025-11-17 10:49           ` Kevin Wolf
2025-11-18  7:37             ` Vladimir Sementsov-Ogievskiy
2025-11-18  9:47               ` Kevin Wolf [this message]
2025-11-18 12:19                 ` Vladimir Sementsov-Ogievskiy
2024-06-26 11:53 ` [PATCH v9 5/7] block: bdrv_get_xdbg_block_graph(): report export ids Vladimir Sementsov-Ogievskiy
2024-06-26 11:53 ` [PATCH v9 6/7] iotests.py: introduce VM.assert_edges_list() method Vladimir Sementsov-Ogievskiy
2024-06-26 11:53 ` [PATCH v9 7/7] iotests: add filter-insertion Vladimir Sementsov-Ogievskiy

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=aRxAxRGJOqLetXHM@redhat.com \
    --to=kwolf@redhat.com \
    --cc=armbru@redhat.com \
    --cc=eblake@redhat.com \
    --cc=hreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@yandex-team.ru \
    /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.