qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH v7 7/8] virtio-pci-blk : Switch to new API.


From: KONRAD Frédéric
Subject: Re: [Qemu-devel] [RFC PATCH v7 7/8] virtio-pci-blk : Switch to new API.
Date: Thu, 13 Dec 2012 10:24:05 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0

On 12/12/2012 18:58, Peter Maydell wrote:
On 12 December 2012 17:53, Andreas Färber <address@hidden> wrote:
Am 12.12.2012 15:25, schrieb Peter Maydell:
How will the PCI transport's PCI vendor/device/class IDs be
set (a) when a virtio-blk backend is created and separately
plugged into a virtio-pci transport (b) for the legacy
virtio-pci-blk? [ideally the answer to (b) should be "in the
same way as for (a)"]
The obvious answer would be that PCI properties need to be set on the
PCI device, not an a VirtioDevice sitting on a virtio-bus.

I.e., with the proposed refactoring we'd have on the virtio-bus:

- VirtioDevice
   + VirtioBlockDevice
   + VirtioSCSIDevice - has-a scsi-bus
   ...

In turn that means that every VirtioDevice to be exposed as PCI device
to the guest needs it own PCIDevice exposing a private virtio-bus.

- PCIDevice
   - VirtioPCIDevice - has-a virtio-bus
     + virtio-blk-pci - has-a VirtioBlockDevice on its virtio-bus
     + virtio-scsi-pci - has-a VirtioSCSIDevice on its virtio-bus
     ...
...this bit is only for legacy back-compat. It should be equally
valid to just use the PCI transport plugged into a VirtioDevice,
both of which were created by the user with -device [and for
new transports, separate transport and backend should be the
standard]. That means the virtio-bus interface needs a way for
the backend to announce to the transport what it is so that
the PCI transport can set the right PCI IDs.

-- PMM
Yes, it's done with uint16_t get_virtio_device_id(VirtioBusState *bus) function from second step.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]