[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [virtio] [PATCH 3/4] ccw: virtio revision vs. virtio feature bits
On Mon, Feb 09, 2015 at 07:09:38PM +0100, Cornelia Huck wrote: > On Mon, 9 Feb 2015 15:49:36 +0100 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > On Mon, Feb 09, 2015 at 09:38:12AM +0100, Cornelia Huck wrote: > > > On Sun, 8 Feb 2015 11:21:18 +0100 > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > On Fri, Oct 31, 2014 at 03:26:18PM +0100, Cornelia Huck wrote: > > > > > We don't want the VERSION_1 feature bit unless at least revision 1 > > > > > has been negotiated. Make this a requirement. > > > > > > > > > > VIRTIO-119 > > > > > > > > > > Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> > > > > > > > > Sorry about the delay in response. > > > > I think I disagree with this one. > > > > > > > > I think this discusses how transitional devices work when > > > > using the legacy interface? > > > > In that case, this needs to go into a separate section, > > > > explicitly labelled "legacy". > > > > > > Hmm... but a legacy device does not actually know about VERSION_1, does > > > it? Or am I misunderstanding what you mean? > > > > you are describing here behaviour where negotiated > > revision is 0, is that right? > > If so this is transitional device/driver behaviour, isn't it? > > But a legacy device/driver can't negotiate version 0, as it doesn't > know the respective command. We have a table in the spec that says version 0 is legacy, do we not? I assumed some legacy drivers do negotiate revisions? > > > > Looking into this deeper, how do devices "not accept" > > > > bits when using a legacy interface? > > > > > > A legacy device can't accept the VERSION_1 bit, as it only has 32 > > > feature bits. It will fail the ccw for the second half of the feature > > > bits. > > > > So are we talking about drivers which set guest feature bits > > which are not set in the host feature bit mask? > > > > We have this text: > > 2.2.2 Device Requirements: Feature Bits > > The device MUST NOT offer a feature which requires another feature which > > was not offered. The device > > SHOULD accept any valid subset of features the driver accepts, otherwise > > it MUST fail to set the FEA- > > TURES_OK device status bit when the driver writes it. > > But here you were asking about legacy devices, weren't you? And these > simply don't have the second half of feature bits, and of course don't > know of the FEATURE_OK bit. > > And this section is talking about feature bit dependencies, isn't it? I don't rightly know - I asked above whether you are talking about drivers which set guest feature bits which are not set in the host feature bit mask. > > > > > > > > Also, the wording here seems wrong to me. > > > > > > Could you elaborate? > > > > "if not at least" seems confusing. do you mean > > "negotiated revision is 0"? > > "if not at least revision 1 has been negotiated" == "no revision or > revision 0 has been negotiated" (so revision 0, as this is not about > legacy devices/drivers) > > I don't know what's confusing about "at least"? E.g. it's unclear whether no negotiation is included. I prefer it that we stick to positives. > > negociated isn't in my dictionary. > > Sigh, that's an obvious typo. > > > > I think this all boils down to whether revision handling is enough to > > > designate a device as non-legacy, no? > > > > It's not clear to me from this text. > > 4.3.2.1 Setting the Virtio Revision > > says rev 0 is legacy interface, but there > > is not conformance statement. > > Hm, I meant "standard compliant device/driver using the legacy > interface". In practice, revision 0 is unlikely to be ever negotiated. > > This all boils down to what a legacy device/driver is supposed to be. > For me, it is a device/driver not knowing about the standard. Yes, it's an old one written before the standard, doing whatever it always did. > Negotiating any revision (including 0) indicates it cares about the > standard. So really no legacy driver/device had revision 0? Why don't we forbid revision 0 outright? > Talking about revisions in the legacy sections therefore > sounds wrong to me. Let's just say "no revision has been negotiated"? > > Would you like to add text that says negotiating rev 0 > > MUST force legacy interface? > > Such text should be in a separate section marked "Legacy Interface". > > > > We can add text that says drivers must not accept VIRTIO_F_VERSION_1 > > in this mode, and devices must not offer VIRTIO_F_VERSION_1. > > Seems generic, non ccw specific, does it not? > > It is specific to ccw revisions, unless we describe a general revision > mechanism with specific implementations. The concept of legacy interface is generic. The way to detect it is transport specific. > > Such text should also be in a separate section marked "Legacy Interface". > > Can we somehow withdraw the ballot? It seems this whole topic needs > more discussion, and I'm currently in the middle of a move and don't > have a head for in-depth discussions. Sure, I can do it. For the record, can you please add a comment in the relevant issue tracker to explicitly confirm that you propose cancelling this ballot: https://www.oasis-open.org/apps/org/workgroup/virtio/ballot.php?id=2764 -- MST
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]