Re: [PATCH] Make virtio devices multi-function

Chris Wright
2008-04-23T06:42:11Z

* Anthony Liguori (anthony@codemonkey.ws) wrote:
> Logically speaking, virtio is a bus. virtio supports all of the features
> of a bus (discover, hot add, hot remove).
>
> Right now, we map virtio devices directly onto the PCI bus.
>
> The problem we're trying to address is limitations of the PCI bus. We have
> a couple options:

First question is if we have a real limitation with multiple busses?

> 1) add a virtio device that supports multiple disks. we need to reinvent
> hotplug within this device.
>
> 2) add a new PCI virtio transport that supports multiple virtio-blk devices
> within a single PCI slot
>
> 3) add a generic PCI virtio transport that supports multiple virtio devices
> within a single PCI slot

compare and contrast above with HBA and disks (makes most sense from my
point of view). for 2 and 3, only difference is whether you want to be
able to support nics, balloons, and block devices on same pci slot (at
which point it's a bridge, how is it different from 4?)

> 4) add a generic virtio "bridge" that supports multiple virtio devices
> within a single virtio device.
>
> #4 may seem strange, but it's no different from a PCI-to-PCI bridge.
>
> I like #4 the most, but #2 is probably the most practical.

Also, your current patch does not work for hotplug disk.

thanks,
-chris