Peter Maydell <peter.mayd...@linaro.org> writes: [...]
> I'm not sure how best to sort this tangle out. We could: > * make controller devices pass in NULL as bus name; this > means that some bus names will change, which is an annoying > breakage but for these minor bus types we can probably > get away with it. This brings these buses into line with > how we've been handling uniqueness for ide and scsi. > * drop the 'name' argument for buses like ide that don't > actually have any callsites that need to pass a name > * split into foo_bus_new() and foo_bus_new_named() so that > the "easy default" doesn't pass a name, and there's at least > a place to put a doc comment explaining that the name passed > into the _named() version should be unique ?? > * something else ? A possible work-around for non-unique bus IDs is QOM paths. Precedence, kind of: commit 6287d827d494b5850049584c3f7fb1a589dbb1de Author: Daniel P. Berrangé <berra...@redhat.com> Date: Fri Sep 11 13:33:56 2015 +0100 monitor: allow device_del to accept QOM paths Currently device_del requires that the client provide the device short ID. device_add allows devices to be created without giving an ID, at which point there is no way to delete them with device_del. The QOM object path, however, provides an alternative way to identify the devices. Allowing device_del to accept an object path ensures all devices are deletable regardless of whether they have an ID. (qemu) device_add usb-mouse (qemu) qom-list /machine/peripheral-anon device[0] (child<usb-mouse>) type (string) (qemu) device_del /machine/peripheral-anon/device[0] Devices are required to be marked as hotpluggable otherwise an error is raised (qemu) device_del /machine/unattached/device[4] Device 'PIIX3' does not support hotplugging Signed-off-by: Daniel P. Berrange <berra...@redhat.com> Message-Id: <1441974836-17476-1-git-send-email-berra...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> [Commit message touched up, accidental white-space change dropped] Signed-off-by: Markus Armbruster <arm...@redhat.com> Their length makes QOM paths inconvenient for humans, but machines won't care. However, we already burned /-separated paths for paths within the qdev tree (the thing info qtree shows). Friends don't let friends use them (I should be able to dig up a critique if you're curious). Without that, it could be made to work like -device virtio-scsi,id=vscsi -device scsi-cd,bus=/machine/peripheral/vscsi/virtio-backend/vscsi.0 We should consult with libvirt developers before we go down this route.