On 03/22/2010 11:16 AM, Paul Brook wrote:
But look at the lguest virtio implement. We would definitely model a
VirtIOBus if we implemented something like that in qemu. VirtIO really
is designed to be a bus.
When you say "bus" you actually mean point-point connection, right[1]?
I don't see anything in virtio that allows arbitration of multiple devices, or
any particular need for one as it can be handled by the host bus bindings.
Virtio itself doesn't define any type of bus operations but is designed
to let it nicely fit into existing bus infrastructures.
If you look at something like lguest, instead of piggying backing on
another bus, it introduces a bus as part of it's virtio infrastructure.
It's basically a shared memory page in a well known location.
Anyway, if you were to implement virtio-lguest in qemu, it would have to
be a bus. Likewise, the virtio-s390 implement would also have to be a bus.
So overall, virtio-pci is really just a special case of a virtio bus
that only supports a single device. Whether you call that p2p I think
is just a question of semantics.
Regards,
Anthony Liguori
Paul
[1] Technically I suppose a p-t-p connection is a degenerate case of a bus.
While modern hardware busses (USB, PCIe) are electrically point-point,
logically they are usually a shared bus topology.