Message ID | 20220901071803.273291-1-hi@alyssa.is (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | docs: clarify absence of set_features in vhost-user | expand |
Alyssa Ross <hi@alyssa.is> writes: > The previous wording was (at least to me) ambiguous about whether a > backend should enable features immediately after they were set using > VHOST_USER_SET_PROTOCOL_FEATURES, or wait for support for protocol > features to be acknowledged if it hasn't been yet before enabling > those features. > > This patch attempts to make it clearer that > VHOST_USER_SET_PROTOCOL_FEATURES should immediately enable features, > even if support for protocol features has not yet been acknowledged, > while still also making clear that the frontend SHOULD acknowledge > support for protocol features. > > Previous discussion begins here: > <https://lore.kernel.org/qemu-devel/87sgd1ktx9.fsf@alyssa.is/> > > Cc: Michael S. Tsirkin <mst@redhat.com> > Signed-off-by: Alyssa Ross <hi@alyssa.is> > --- > docs/interop/vhost-user.rst | 14 +++++++++----- > 1 file changed, 9 insertions(+), 5 deletions(-) > > diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst > index 3f18ab424e..c8b9771a16 100644 > --- a/docs/interop/vhost-user.rst > +++ b/docs/interop/vhost-user.rst > @@ -906,9 +906,9 @@ Front-end message types > ``VHOST_USER_SET_FEATURES``. > > .. Note:: > - Back-ends that report ``VHOST_USER_F_PROTOCOL_FEATURES`` must > - support this message even before ``VHOST_USER_SET_FEATURES`` was > - called. > + While QEMU should acknowledge ``VHOST_USER_F_PROTOCOL_FEATURES``, a > + back-end must allow ``VHOST_USER_GET_PROTOCOL_FEATURES`` even if > + ``VHOST_USER_F_PROTOCOL_FEATURES`` has not been acknowledged yet. I think this is just restating the same logic from above introduced in: fa9972662c (vhost-user.rst: add clarifying language about protocol negotiation) that we don't need VHOST_USER_F_PROTOCOL_FEATURES to be acked by VHOST_USER_SET_FEATURES? I agree the wording is hard to follow though. I suspect what would really help is some clear message sequence diagrams in the document showing the negotiation steps. > > ``VHOST_USER_SET_PROTOCOL_FEATURES`` > :id: 16 > @@ -923,8 +923,12 @@ Front-end message types > ``VHOST_USER_SET_FEATURES``. > > .. Note:: > - Back-ends that report ``VHOST_USER_F_PROTOCOL_FEATURES`` must support > - this message even before ``VHOST_USER_SET_FEATURES`` was called. > + While QEMU should acknowledge ``VHOST_USER_F_PROTOCOL_FEATURES``, a > + back-end must allow ``VHOST_USER_SET_PROTOCOL_FEATURES`` even if > + ``VHOST_USER_F_PROTOCOL_FEATURES`` has not been acknowledged yet. > + The back-end must not wait for ``VHOST_USER_SET_FEATURES`` before > + enabling protocol features requested with > + ``VHOST_USER_SET_PROTOCOL_FEATURES``. > > ``VHOST_USER_SET_OWNER`` > :id: 3 > > base-commit: e93ded1bf6c94ab95015b33e188bc8b0b0c32670
diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst index 3f18ab424e..c8b9771a16 100644 --- a/docs/interop/vhost-user.rst +++ b/docs/interop/vhost-user.rst @@ -906,9 +906,9 @@ Front-end message types ``VHOST_USER_SET_FEATURES``. .. Note:: - Back-ends that report ``VHOST_USER_F_PROTOCOL_FEATURES`` must - support this message even before ``VHOST_USER_SET_FEATURES`` was - called. + While QEMU should acknowledge ``VHOST_USER_F_PROTOCOL_FEATURES``, a + back-end must allow ``VHOST_USER_GET_PROTOCOL_FEATURES`` even if + ``VHOST_USER_F_PROTOCOL_FEATURES`` has not been acknowledged yet. ``VHOST_USER_SET_PROTOCOL_FEATURES`` :id: 16 @@ -923,8 +923,12 @@ Front-end message types ``VHOST_USER_SET_FEATURES``. .. Note:: - Back-ends that report ``VHOST_USER_F_PROTOCOL_FEATURES`` must support - this message even before ``VHOST_USER_SET_FEATURES`` was called. + While QEMU should acknowledge ``VHOST_USER_F_PROTOCOL_FEATURES``, a + back-end must allow ``VHOST_USER_SET_PROTOCOL_FEATURES`` even if + ``VHOST_USER_F_PROTOCOL_FEATURES`` has not been acknowledged yet. + The back-end must not wait for ``VHOST_USER_SET_FEATURES`` before + enabling protocol features requested with + ``VHOST_USER_SET_PROTOCOL_FEATURES``. ``VHOST_USER_SET_OWNER`` :id: 3
The previous wording was (at least to me) ambiguous about whether a backend should enable features immediately after they were set using VHOST_USER_SET_PROTOCOL_FEATURES, or wait for support for protocol features to be acknowledged if it hasn't been yet before enabling those features. This patch attempts to make it clearer that VHOST_USER_SET_PROTOCOL_FEATURES should immediately enable features, even if support for protocol features has not yet been acknowledged, while still also making clear that the frontend SHOULD acknowledge support for protocol features. Previous discussion begins here: <https://lore.kernel.org/qemu-devel/87sgd1ktx9.fsf@alyssa.is/> Cc: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Alyssa Ross <hi@alyssa.is> --- docs/interop/vhost-user.rst | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) base-commit: e93ded1bf6c94ab95015b33e188bc8b0b0c32670