On 17/12/2012 16:45, Michael S. Tsirkin wrote:
On Fri, Dec 07, 2012 at 02:32:29PM +0100, fred.kon...@greensocs.com wrote:
From: KONRAD Frederic <fred.kon...@greensocs.com>
You can clone that from here :
git.greensocs.com/home/greensocs/git/qemu_virtio.git virtio_refactoring_v6
The problem with the last RFC v5 was that virtio-blk refactoring broke
virtio-blk-pci device ( SEGFAULT ). So I modify this last step to fix that
issue.
In order to not break anything, I think we have to refactor virtio-pci-blk in a
next step then add a supplementary step which clean virtio-blk
( eg : fix the cast ).
Does it make sense ?
I am yet to go over the patches but I did try to read
previous discussion and I am still puzzled about the motivation. One of
the previous messages mentioned this is to allow virtio-mmio.
Yes, the main goal is to have the choice of the transport device.
eg :
-device virtio-pci,id=transport1 -device virtio-scsi,bus=transport1
or
-device virtio-mmio,id=transport1 -device virtio-scsi,bus=transport1
That's why anthony suggest to create a virtio-bus to connect transport
to device.
so all virtio-x devices must be created. And virtio-pci must have a
virtio-bus.
Then to keep compability with the older version virtio-x-pci must create
virtio-pci and virtio-x.
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?
Do you mean something like creating all virtio device like virtio-mmio-x ?
Is the issue that bindings are not devices?
I'm sending a patchset to use DeviceState as binding pointer -
will this address the issue?
The issue is that all is linked, and here the virtio-blk refactoring breaks
virtio-blk-pci and virtio-blk-s390 devices as they didn't use QOM.
But the newer version ( V7 ) didn't break anything.
If this was covered but I missed this I'll be thankful for
pointers if any.
Thanks,