On Thu, 18 Mar 2021 17:17:50 +0100 Kevin Wolf <[email protected]> wrote:
> Am 18.03.2021 um 16:15 hat zhao xiaojun geschrieben: > > 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? > > QMP doesn't have such commands. For commands that operate on the > frontend (the guest device), they accept the id of the -device. For > commands that relate to the backend, you can specify node-name. > > It's only HMP that may not support these alternatives in some places. > We can just extend it. > > Kevin > Ok, thank you very much. Regards.
