On 08/01/2013 15:02, Michael S. Tsirkin wrote:
On Tue, Jan 08, 2013 at 10:56:54AM +0100, KONRAD Frédéric wrote:
On 07/01/2013 20:58, Michael S. Tsirkin wrote:
On Tue, Dec 18, 2012 at 12:30:20PM +0100, KONRAD Frédéric wrote:
On 18/12/2012 12:01, Michael S. Tsirkin wrote:
On Tue, Dec 18, 2012 at 10:33:37AM +0000, Peter Maydell wrote:
On 17 December 2012 15:45, Michael S. Tsirkin <m...@redhat.com> wrote:
Is the point to allow virtio-mmio?  Why can't virtio-mmio be just
another bus, like a pci bus, and another binding, like the virtio-pci
binding?
(a) the current code is really not very nice because it's not
actually a proper set of QOM/qdev devices
(b) unlike PCI, you can't create sysbus devices on the
command line, because they don't correspond to a user
pluggable bit of hardware. We don't want users to have to know
an address and IRQ number for each virtio-mmio device (especially
since these are board specific); instead the board can create
and wire up transport devices wherever is suitable, and the
user just creates the backend (which is plugged into the virtio bus).

-- PMM
This is what I am saying: create your own bus and put
your devices there. Allocate resources when you init
a device.

Instead you seem to want to expose a virtio device as two devices to
user - if true this is not reasonable.

The modifications will be transparent to the user, as we will keep
virtio-x-pci devices.
Then what's the point of all this?

-device virtio-pci,id=transport1 -device virtio-net,bus=transport1

or

-device virtio-mmio,id=transport1 -device virtio-net,bus=transport1

Is simply an insane way to create a network device.

To recap :

The idea is to have a virtio-bus between the transport device
(like pci, mmio,... ).

Then we can have a platform with several virtio-mmio and then
virtio-bus slot.

At the end user can add a virtio-device in the command line with -device
parameter without recompiling the platform. That is not possible with just
creating the virtio-x-mmio devices. The bus= option can be used to
select the bus slot, but I'm not sure it is usefull.
pci uses addr option for this, I am guessing mmio can do the same.

The series keep the virtio-x-pci devices :
eg : step 11/61 for virtio-blk
So -device virtio-blk-pci or -device virtio-blk-s390 works as before.

Of course -device virtio-pci,id=transport1 -device
virtio-net,bus=transport1 is
possible but why using this command line when we could simply do :
-device virtio-net-pci ?

Fred
Adding multiple ways to do one thing is a bad idea.
I'm fine with modeling virtio by multiple devices
internally, but exposing this to user is a mistake,
we might rework this even more and command line
has to be supported indefinitely.

for the moment all virtio-x-pci devices extend virtio-pci.
So why not abstracting virtio-pci ?
Then there is only one way to add a virtio-x-pci device.



Reply via email to