Thanks you, that's really good idea. And I also have the following question:
There are some hmp and qmp commands in my scripts, they need the device as an argument. Recently. i used the -blockdev replace the -drive to specify the disk drive, then use
qmp's query_block to query the device, but the device is NULL string. For the hmp's block_resize, I can use qmp's block_resize do. But the other commands(qpm's block-job-cancel etc.
), they only support the device argument. So I can only continue to use -drive to specify disk drive.
I was trying to see the source(qemu v5.1.0):
qmp_query_device()
-> bdrv_query_info()
info->device = g_strdup(blk_name(blk))
the device is set to blk_name(blk), and the blk->name is set in the monitor_add_blk()
the -blockdev:
qmp_blockdev_add()
-> bds_tree_init()
-> bdrv_open()
...
the qmp_blockdev_add() doesn't call the monitor_add_blk().
Questions:
Why can not qmp_blockdev_add() call the monitor_add_blk()?
Will the hmp and qmp commands that only support device as an argument be compat with the -blockdev option?