OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [virtio-comment] virtio and endian-ness

On Tue, Aug 20, 2013 at 04:14:09PM +0100, Pawel Moll wrote:
> On Tue, 2013-08-20 at 16:08 +0100, Michael S. Tsirkin wrote:
> > Confused.
> > You want to support old and new devices in the same
> > driver, don't you? Isn't that making it more complicated?
> It will make the driver more complicated, yes (slightly, as the *MMIO*
> changes are not going to be too extensive). But to my knowledge only one
> virtio_mmio driver has been ever implemented (the Linux one), where I
> can do the right thing quite easily and this is a common pattern for the
> kernel drivers (a single one can driver a family of almost, but not
> quite, identical devices). I just don't want to make life harder for the
> guys implementing the device component (I'll say this again: virtio_mmio
> interface was conceived to be as simple as possible :-) in qemu, kvm
> tools, proprietary modelling environments, <pick your choice here>.
> Paweł


I think spec should give devices the choice.

If they don't want old drivers to work,
they can bump version number.
If they want old drivers to work, don't
bump version number.

This implies that another mechanism (besides version number)
is used by driver and device to detect new spec.

Actually feature bit starts looking OK to me
as long as it doesn't mean "v2 driver required",
instead meaning "v2 driver supported".
We specify that v2 driver always acks this bit.

So if you (like Paweł) don't want to support old drivers,
just bump revision and set this bit.
Then if driver does not ack this bit -> it's a driver bug.

If you want to support old drivers - don't bump
revision, and set this feature bit.
You can look at the feature bit to distinguish old
drivers from new ones.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]