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.