[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Insufficiently documented deprecated command arguments
From: |
Daniel P . Berrangé |
Subject: |
Re: Insufficiently documented deprecated command arguments |
Date: |
Wed, 11 Dec 2019 12:32:10 +0000 |
User-agent: |
Mutt/1.12.1 (2019-06-15) |
On Wed, Dec 11, 2019 at 01:24:17PM +0100, Kevin Wolf wrote:
> Am 11.12.2019 um 11:51 hat Peter Krempa geschrieben:
> > On Wed, Dec 11, 2019 at 11:14:39 +0100, Kevin Wolf wrote:
> > > Am 11.12.2019 um 10:33 hat Peter Krempa geschrieben:
> > > > On Wed, Dec 11, 2019 at 09:12:41 +0100, Markus Armbruster wrote:
> > > > > Commit 7a9877a026 "block: Accept device model name for
> > > > > block_set_io_throttle" (v2.8.0) deprecated block_set_io_throttle
> > > > > argument @device.
> > > >
> > > > This one is more complex. The command is used both in 'blockdev' and in
> > > > 'drive' mode:
> > > >
> > > > In 'drive' mode we pass the alias of the 'drive' as the @device
> > > > argument.
> > > >
> > > > In 'blockdev' mode we pass the qom name as @id
> > >
> > > Any reason you couldn't use the QOM name even in 'drive' mode for any
> > > QEMU version that has the @id option?
> >
> > Honestly, I didn't want to change the existing implementation at all.
> >
> > If it will help I can change that as it will be pretty easy to do.
>
> You can keep it for until after the blockdev dust has settled. It would
> "just" be to address the deprecation since QEMU 2.8, not because of any
> functional change.
>
> > >
> > > > > Commit c42e8742f5 "block: Use JSON null instead of "" to disable
> > > > > backing file" (v2.10.0) deprecated blockdev-add empty string
> > > > > argument @backing.
> > > >
> > > > This is used in 'blockdev' mode only and we always pass the JSON null or
> > > > a node name string.
> > >
> > > Here the thing to consider might be that JSON null isn't easy to use on
> > > the command line for manual users.
> > >
> > > > > These were missed in commit eb22aeca65 "docs: document deprecation
> > > > > policy & deprecated features in appendix" (v2.10.0).
> > > > >
> > > > > Commit 3c605f4074 "commit: Add top-node/base-node options"
> > > > > (v3.1.0)
> > > > > deprecated block-commit arguments @base and @top.
> > > >
> > > > This command also has two modes:
> > > >
> > > > In 'drive' mode we pass in path strings as @base and @ top.
> > > >
> > > > In 'blockdev' mode we pass in nodenames as @base-node and @top-node.
> > > >
> > > > Starting from qemu-4.2 libvirt uses 'blockdev' mode for VMs unless an SD
> > > > card is configured as we didn't convert to the '-device' approach for
> > > > those as AFAIK not everything is possible to be converted.
> > >
> > > Hm... I guess in 'drive' mode, you stil don't assign node names, so you
> > > actually have to rely on paths?
> >
> > Well, in some specific cases we could detect the node names
> > auto-assigned by qemu and use them instead of paths, but in my opinion
> > it's not worth the effort and extra code.
>
> Well, the question is what to do on the QEMU side then. Deprecation
> should mean that we have a plan for removing the feature. If we're
> planning to keep the feature indefinitely because libvirt needs it, we
> might want to consider removing the deprecation notice.
Ideally libvirt would stop using -drive entirely, as I hate the idea of
having to keep this around indefinitely in libvirt too. This needs QEMU
to close the last gaps wrt SD cards
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|