Re: [PATCH 1/6] virtio interace

Arnd Bergmann
2007-09-22T10:01:33Z

On Saturday 22 September 2007, Rusty Russell wrote:
> But now each virtio device has two "struct device"s, not one.   And
> you've made up a fictional bus to do it.
>
> Yet for PCI systems, it really is a PCI device; exposing a second bus to
> userspace just because we put a layer in our implementation is poor
> form.
>
> Perhaps this is the easiest way of doing it.  But it's still wrong.

I think it's just a matter of perspective. In the model I'm advocating,
the PCI device is not the same as the virtio device but rather a virtio
host bridge, very much like USB or SATA works.

We could easily have multiple virtio devices behind one PCI device, but
since virtual PCI devices are cheap, a one-to-one mapping makes sense
for simplicity.

Having two struct devices for an actual device is the price to pay for
this, but I do think that creating a bus_type for virtio is the logical
abstraction and not something we just make up to work around a
deficiency in our device reprentation.