[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 05/11] qemu-options: finesse the recommendations around -b
From: |
Kevin Wolf |
Subject: |
Re: [PATCH v2 05/11] qemu-options: finesse the recommendations around -blockdev |
Date: |
Tue, 11 Apr 2023 14:09:25 +0200 |
Am 06.04.2023 um 22:23 hat Reinoud Zandijk geschrieben:
> On Tue, Apr 04, 2023 at 06:17:45PM +0200, Kevin Wolf wrote:
> > Am 04.04.2023 um 17:07 hat Michael Tokarev geschrieben:
> > > 04.04.2023 16:57, Kevin Wolf пишет:
> > Maybe -snapshot should error out if -blockdev is in use. You'd generally
> > expect that either -blockdev is used primarily and snapshots are done
> > externally (if the command line is generated by some management tool),
> > or that -drive is used consistently (by a human who likes the
> > convenience). In both cases, we wouldn't hit the error path.
> >
> > There may be some exceptional cases where you have both -drive and
> > -blockdev (maybe because a human users needs more control for one
> > specific disk). This is the case where you can get a nasty surprise and
> > that would error out. If you legitimately want the -drive images
> > snapshotted, but not the -blockdev ones, you can still use individual
> > '-drive snapshot=on' options instead of the global '-snapshot' (and the
> > error message should mention this).
>
> I didn't know that! I normally use the -snapshot as global option. Is there a
> reason why -blockdev isn't honouring -snapshot?
The philosophy behind -blockdev is that you're explicit about every
image file (and other block node) you want to use and that QEMU doesn't
magically insert or change things behind your back.
For simple use cases that might not seem necessary, but many of the
newer functions added to the block layer, like the block jobs, are
operations that can work on any node in the block graph (i.e. any of the
open images, including backing files etc.). If QEMU changed something
behind your back, you can easily access the wrong image. Especially for
management software like libvirt this kind of magic that -drive involves
was really hard to work with because it always had to second guess what
the world _really_ looked like on the QEMU side.
For example, imagine you open foo.img with -snapshot. Now you want to
create a backup of your current state, so tell QEMU to backup the block
node for foo.img because that's what your VM is currently running on,
right? Except that nobody told you that the active image is actually a
temporary qcow2 image file that -snapshot created internally. You're
backing up the wrong image without the changes of your running VM.
So it's better to always be explicit, and then it's unambiguous which
image file you really mean in operations.
Kevin
- [PATCH v2 00/11] more misc fixes for 8.0 (tests, gdbstub, meta, docs), Alex Bennée, 2023/04/03
- [PATCH v2 03/11] gdbstub: don't report auxv feature unless on Linux, Alex Bennée, 2023/04/03
- [PATCH v2 02/11] gdbstub: Only build libgdb_user.fa / libgdb_softmmu.fa if necessary, Alex Bennée, 2023/04/03
- [PATCH v2 04/11] MAINTAINERS: add a section for policy documents, Alex Bennée, 2023/04/03
- [PATCH v2 05/11] qemu-options: finesse the recommendations around -blockdev, Alex Bennée, 2023/04/03
- Re: [PATCH v2 05/11] qemu-options: finesse the recommendations around -blockdev, Kevin Wolf, 2023/04/04
- Re: [PATCH v2 05/11] qemu-options: finesse the recommendations around -blockdev, Alex Bennée, 2023/04/04
- Re: [PATCH v2 05/11] qemu-options: finesse the recommendations around -blockdev, Michael Tokarev, 2023/04/04
- Re: [PATCH v2 05/11] qemu-options: finesse the recommendations around -blockdev, Kevin Wolf, 2023/04/04
- Re: [PATCH v2 05/11] qemu-options: finesse the recommendations around -blockdev, Reinoud Zandijk, 2023/04/06
- Re: [PATCH v2 05/11] qemu-options: finesse the recommendations around -blockdev,
Kevin Wolf <=
- Re: [PATCH v2 05/11] qemu-options: finesse the recommendations around -blockdev, Alex Bennée, 2023/04/11
[PATCH v2 01/11] scripts/coverage: initial coverage comparison script, Alex Bennée, 2023/04/03
[PATCH v2 06/11] metadata: add .git-blame-ignore-revs, Alex Bennée, 2023/04/03
[PATCH v2 10/11] gitlab: fix typo, Alex Bennée, 2023/04/03
[PATCH v2 07/11] Use hexagon toolchain version 16.0.0, Alex Bennée, 2023/04/03
[PATCH v2 09/11] tests/vm: use the default system python for NetBSD, Alex Bennée, 2023/04/03
[PATCH v2 11/11] tests/avocado: Test Xen guest support under KVM, Alex Bennée, 2023/04/03
[PATCH v2 08/11] tests/qemu-iotests: explicitly invoke 'check' via 'python', Alex Bennée, 2023/04/03