All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "QEMU Developers" <qemu-devel@nongnu.org>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: ensuring a machine's buses have unique names
Date: Wed, 22 Sep 2021 06:46:27 +0200	[thread overview]
Message-ID: <87r1dhrzdo.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <CAFEAcA-1cGjt54XDEmKiDctySW4zdQptoc2taGp0XxMOtKvGCw@mail.gmail.com> (Peter Maydell's message of "Tue, 14 Sep 2021 16:25:49 +0100")

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.



      parent reply	other threads:[~2021-09-22  4:47 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-12 11:05 ensuring a machine's buses have unique names Peter Maydell
2021-08-26 13:00 ` Peter Maydell
2021-08-26 14:08 ` Markus Armbruster
2021-09-14 15:25   ` Peter Maydell
2021-09-15  4:28     ` Markus Armbruster
2021-09-21 13:20       ` Peter Maydell
2021-09-21 15:48         ` BALATON Zoltan
2021-09-22  4:37           ` Markus Armbruster
2021-09-22  9:58             ` BALATON Zoltan
2021-09-22 13:07               ` Markus Armbruster
2021-09-22  7:02         ` Markus Armbruster
2021-09-22  8:14           ` Cédric Le Goater
2021-09-22  4:46     ` Markus Armbruster [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87r1dhrzdo.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.