On 07/13/2017 07:41 AM, Kevin Wolf wrote: > Since 2.9 it is possible for a user to care only about nodes and qdev devices, > but not about BlockBackends, by defining with -blockdev and using their node > name in -device. Devices create an anonymous BlockBackend internally then. > > One of the major problems in this setup is that such devices are not listed in > query-block or HMP 'info block' because the BBs are not monitor-owned. A > recent > discussion concluded that we really want to replace query-block and friends > with something that matches QEMU's internals better, but there's no way to do > that in 2.10 (and I wouldn't bet on it to be completed for 2.11). So for now, > just make the devices appear in query-block and add the qdev ID there in order > to make the devices identifiable (they have 'device': '' because the BB is > anonymous). > > With the additional qdev field, it turned out that with empty drives, ide-cd > and scsi-cd weren't even properly attached to the BlockBackend. If you do it > right, this even results in crashes. (Floppy already gets it right, in case > you > wondered.) > > After this series, -device drive=<node-name> should be reasonably usable > without a major loss of functionality like before. > > v2: > - Updated example QMP outputs in schema comments [Eric] > - Added missing "since" tag in schema [Eric] > - Improved some commit messages [Eric] > > Kevin Wolf (9): > block: Make blk_get_attached_dev_id() public > block/qapi: Add qdev device name to query-block > block: Make blk_all_next() public > block/qapi: Use blk_all_next() for query-block > block: List anonymous device BBs in query-block > ide: bdrv_attach_dev() for empty CD-ROM
oops... > scsi-disk: bdrv_attach_dev() for empty CD-ROM Well, at least I'm in good company. > qemu-iotests: Test 'info block' > qemu-iotests: Test unplug of -device without drive > > block/block-backend.c | 5 +- > block/qapi.c | 20 +- > hmp.c | 11 +- > hw/ide/qdev.c | 3 + > hw/scsi/scsi-disk.c | 5 + > include/sysemu/block-backend.h | 2 + > qapi/block-core.json | 9 +- > tests/qemu-iotests/067 | 13 ++ > tests/qemu-iotests/067.out | 40 ++++ > tests/qemu-iotests/186 | 147 +++++++++++++ > tests/qemu-iotests/186.out | 489 > +++++++++++++++++++++++++++++++++++++++++ > tests/qemu-iotests/group | 1 + > 12 files changed, 735 insertions(+), 10 deletions(-) > create mode 100755 tests/qemu-iotests/186 > create mode 100644 tests/qemu-iotests/186.out > Series: Reviewed-by: John Snow <js...@redhat.com>