Am 11.12.2018 um 08:28 hat Markus Armbruster geschrieben: > I figure Kevin knows, but you typoed his e-mail address. I fixed it for > you. > > Anton Kuchin <antonkuc...@yandex-team.ru> writes: > > > Hello, > > > > I'm trying to switch from -drive parameter to -blockdev + -device and > > having problems. Looks like with this option I have no way to set the > > name of created BlockBackend, but some QMP and HMP commands are > > trying to find blk with blk_by_name() and fail to locate my device > > (e.g. hmp_commit, qmp_x_bloc_latency_histogram_set ...). Was it > > intentional and BB names are going to be deprecated? > > > > This also seems to be a the case for all block devices hotplugged with > > QMP as they use the same code path. > > > > As far as I understand all named backends are stored in > > monitor_block_backends list, but I can't get what is the point of > > having this list, and why parse_drive() function doesn't call > > monitor_add_blk() like blockdev_init() does with -drive option. Can > > someone give me a hint on this? > > > > I also noticed that some commands fallback to search by qdev_id or > > BDS->node_name, but at the creation time (both in > > bdrv_assing_node_name and monitor_add_blk) it is already checked that > > names are unique across these namespaces so may be it would be useful > > to introduce generic search function?
Yes, BlockBackend names are not supposed to be used in the external interfaces any more. If the QMP command is about the backend, it will take a node name, and if it's about the guest device (which may not even have a node attached with removable media), it will take a qdev ID. The implementation of qmp_x_block_latency_histogram_set() is incorrect, it shouldn't use blk_by_name(). I wonder where it got that pattern from because it was added long after all other QMP commands had switched to qmp_get_blk() or bdrv_lookup_bs(). hmp_commit() should indeed use bdrv_lookup_bs() to also accept node names. I think we reviewed QMP to make sure we converted everything and forgot about HMP commands that aren't mapped to QMP. Kevin