[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ensuring a machine's buses have unique names
From: |
Markus Armbruster |
Subject: |
Re: ensuring a machine's buses have unique names |
Date: |
Wed, 22 Sep 2021 06:46:27 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Peter Maydell <peter.maydell@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é <berrange@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 <berrange@redhat.com>
Message-Id: <1441974836-17476-1-git-send-email-berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
[Commit message touched up, accidental white-space change dropped]
Signed-off-by: Markus Armbruster <armbru@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.
Re: ensuring a machine's buses have unique names,
Markus Armbruster <=