On 25 September 2017 at 19:20, Eduardo Habkost <ehabk...@redhat.com> wrote: > On Mon, Sep 25, 2017 at 07:02:06PM +0100, Peter Maydell wrote: >> On 25 September 2017 at 18:51, Eduardo Habkost <ehabk...@redhat.com> wrote: >> > On Mon, Sep 25, 2017 at 06:45:15PM +0100, Peter Maydell wrote: >> >> You should be able to on the command line for x86 do something >> >> like -device virtio-pci,... -device virtio-foo-device,... >> >> to manually create the pci transport and the backend. >> > >> > virtio-pci is abstract, so this is not possible. (The same >> > applies to virtio-ccw-device). >> >> Did I use the wrong device name? I meant the transport >> layer device (which virtio-pci-blk creates along with >> virtio-blk-device internally), not the abstract device >> that's a base class for the pci devices. > > AFAIK, virtio-pci/virtio-pci-blk itself is the transport layer > device. Internally, it creates two objects: a virtio-pci-bus > (which is a 1-device bus, not creatable using -device), and a > virtio-blk-device attached to that bus.
Hmm, I thought the way we structured this was that virtio-pci-blk is the convenience wrapper device, which creates both the endpoint device (virtio-blk-device) and the transport device (which is the thing that has a PCI bus interface on one end and a virtio bus on the other). But maybe we didn't restructure the pci virtio devices to do that... thanks -- PMM