On Wed, Jul 31, 2013 at 03:37:01PM +0100, Pawel Moll wrote:
> On Wed, 2013-07-31 at 14:25 +0100, Anthony Liguori wrote:
> > I'm not sure where this discussion took place, but there is nothing in
> > QEMU that requires a dummy device to be used.
>
> http://thread.gmane.org/gmane.linux.kernel.virtualization/20144
>
> > The analogy would be a PCI slot that doesn't have a device plugged into
> > it. Per the PCI spec, if a device is absent, any reads to the slot
> > will return a well defined value (all ones). Those values are invalid
> > for things like a device id.
>
> It is very unsafe to "probe" memory mapped peripherals.
>
> > I really dislike the design of virtio-mmio. I don't understand why it
> > limits itself to a single device.
>
> It is modelled after simple memory mapped peripherals, so it is simple
> itself. And if I was doing it today from scratch again, I would still
> focus on doing one thing only. After all there are discoverable buses
> out there, I don't see any reason to try to invent my own discovery
> mechanism.
>
> > But that's a different discussion.
>
> It is indeed, and I am open to all suggestions how to make it more
> likeable :-)
>
> > virtio-blk is a separate device that can be connected to the transport.
>
> As in: block device of zero size? This has also been suggested in the
> thread linked above.
>
> > And yes, there should be a way to specify "this transport is not
> > connected to anything".
>
> In a "virtio generic" way or mmio-specific one? Maybe instead of
> defining zero as a do-nothing-device we should simply make this value
> reserved or illegal? This would make PCI situation clear (no device will
> be ever allowed to have it) and mmio driver could "overload" its meaning
> as "ignore".
>
> Paweł
This last option is what I was suggesting, I think it'll work well.