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
