Re: Where should the vhost-user specification live?

Stefano Garzarella <[email protected]> Fri, 12 Jun 2026 09:49:13 +0200
Newsgroups dev.linux.lists.virtio-comment,org.nongnu.qemu-devel
Message-ID <aiu26_Ha5NvyZUI0@sgarzare-redhat>
On Thu, Jun 11, 2026 at 04:45:10PM -0400, Michael S. Tsirkin wrote:
>On Thu, Jun 11, 2026 at 04:39:15PM -0400, Stefan Hajnoczi wrote:
>> On Wed, Jun 10, 2026 at 09:37:10AM +0100, Daniel P. Berrangé wrote:
>> > On Tue, Jun 09, 2026 at 08:51:15PM +0100, Peter Maydell wrote:
>> > > On Tue, 9 Jun 2026 at 20:45, Stefan Hajnoczi <[email protected]> wrote:
>> > > >
>> > > > On Tue, Jun 9, 2026 at 2:51 PM Peter Maydell <[email protected]> wrote:
>> > > > >
>> > > > > On Tue, 9 Jun 2026 at 19:00, Stefan Hajnoczi <[email protected]> wrote:
>> > > > > > I'm not sure if anyone brought up this topic on qemu-devel and with
>> > > > > > Michael before. As I mentioned in my reply, there are ways to avoid
>> > > > > > blocking vhost-user spec changes when qemu.git is frozen:
>> > > > > >
>> > > > > > The simplest approach is to keep merging vhost-user.rst changes during
>> > > > > > freeze since it does not jeopardize the release or introduce
>> > > > > > instability.
>> >
>> > snip
>> >
>> > > I tend to view the specs subsection of the docs as being
>> > > for things where either QEMU really is the authoritative
>> > > source (eg fw_cfg), or where the spec is for something that's
>> > > basically moribund and has no better home. If vhost-user is
>> > > a cross-project specification that it so active that it
>> > > cannot live within QEMU's release process, then I think
>> > > it deserves to have its own independent home.
>> >
>> > Yes, the main impression I get having read through this whole thread
>> > is that vhost-user spec should have its own home outside QEMU.
>> >
>> > We can come up with all sorts of rationalizations for how to make
>> > things work in the context of QEMU, but they all just come across
>> > as excuses to avoid changing the fairly arbitrary historical use
>> > of qemu.git. Even if as QEMU maintainers we consider that we're a
>> > "neutral" home, I can understand why it might not be perceived that
>> > way from the outside.
>> >
>> > If people want agility such that we need to make exceptions for
>> > our rules during freeze that is one flag that it doesn't belong
>> > with the main qemu.git, but there are broader points that are
>> > pushing my view in that direction too.
>> >
>> >
>> > Not mentioned is that engaging with the QEMU mailing list as a
>> > non-regular QEMU contributor is not a very attractive task.
>> > While QEMU may be satisfied with email, QEMU are in a tiny
>> > minority these days. The rest of the OSS community has
>> > decided that git forges are the better way to collaborate.
>> >
>> > Our dev list is very high volume, with changes very easily (and
>> > often) lost in the noise, even from regular contributors, such
>> > that we have to teach people to (repeatedly) "ping" to attract
>> > attention.
>>
>> A separate repo in a git forge definitely has the advantage of making
>> communication easier to follow for anyone interested only in the
>> vhost-user protocol.
>>
>> > If we want agility though, IMHO it is best to stay away from the
>> > bureucracy of the OASIS virtio spec / committee, which is a big
>> > turn off IME.
>>
>> Yes, OASIS adds overhead.
>>
>> The downside is that vhost-user suffers from being outside the VIRTIO
>> spec umbrella. It's really a VIRTIO Transport and would benefit from the
>> discipline of actually being part of the spec as such. At the moment
>> vhost-user is not really bound to VIRTIO through any interface (i.e.
>> VIRTIO Transport) or device lifecycle that is guaranteed to align with
>> the VIRTIO spec. This has led to both design problems and bugs that
>> would be prevented by making it a VIRTIO Transport.
>>
>> In addition to the OASIS overhead you mentioned, the other issue is 
>> that
>> moving vhost-user into the VIRTIO spec would require reconciling the
>> the vhost-user protocol with the VIRITO Transport's interface and also
>> rewriting parts of the vhost-user spec that are not up to the level
>> (e.g. adding conformance clauses, eliminating some informal language,
>> etc).
>
>And possibly getting an agreement to OASIS IPR from major past contributors.
>
>> In other words, it's a bunch of work. Although from a purist perspective
>> I think it's the right place for vhost-user, I think it would be an
>> unpopular solution.
>>

Yep, agree on this.

About the current workflow, Working on both QEMU and rust-vmm, I've seen 
people a bit scared by the QEMU review process when all they want is to 
propose a protocol change. As Daniel pointed out, our mailing list is 
high volume and unfamiliar to many. That's a real barrier both for 
contributors and perhaps also for those who would like to follow the 
development.

What about creating a new organization (e.g. "virtio") on gitlab or 
github, and hosting the vhost-user spec there in its own repo, using 
MRs/PRs for changes?

Under the same organization we could keep a read-only mirror of the 
OASIS virtio-spec repo. That wouldn't change virtio governance in any 
way, OASIS stays the authoritative source, but it gives a single place 
to find everything virtio-related.
As a side note, it could also serve as a starting point if the virtio 
community ever wanted to move the spec outside OASIS, but that's 
a completely separate discussion and not something I'm pushing for.

For the vhost-user spec itself, I think we should invite co-maintainers 
from other projects, and keep requiring a broadly complete 
implementation before merging non-trivial spec changes, but that's what 
we already tried to do for both vhost-user and virtio spce changes.

That said, honestly, this might lead to fragmentation (although the goal 
is to create a single hub for virtio), so perhaps the idea of having a 
repository in QEMU gitlab or rust-vmm github might be better.

I'm happy to help with the setup if we reach consensus.

Thanks,
Stefano