qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC PATCH v6 0/6] Virtio refactoring.


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [RFC PATCH v6 0/6] Virtio refactoring.
Date: Tue, 8 Jan 2013 16:02:05 +0200

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 <address@hidden> 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.





reply via email to

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