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?
Kevin Wolf <[email protected]> 于2021年3月18日周四 下午6:50写道:
> Am 17.03.2021 um 23:49 hat John Snow geschrieben:
> > On 3/16/21 11:43 PM, zhao xiaojun wrote:
> > > Hi,
> > > I use -blockdev option to specify a drive when qemu boot and i want to
> > > resize it with hmp block_resize command. The hmp block_resize comand's
> > > arguments: block_resize device new_size.
> > > So I query the device by qmp query_block command, but the device filed
> > > of the result output is NULL string.
> > >
> > > result output:
> > > {
> > > "return": [
> > > {
> > > "io-status": "ok",
> > > "device": "",
> > > ...
> > > }
> > >
> > > I noticed that the qmp block_resize command supports device or
> node-name
> > > as argument.
> > >
> > > If i can continue use the the hmp block_resize command with the device
> > > argument?
> > >
> > > Regards.
> >
> > I'm not sure what you're asking: hmp's block_resize doesn't accept
> node-name
> > arguments as you've found. Are you not able to use QMP's block_resize?
>
> We should probably fix HMP block_resize to accept node names.
>
> Kevin
>
>