All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Stefan Hajnoczi" <stefanha@gmail.com>,
	"Dorinda Bassey" <dbassey@redhat.com>,
	"Albert Esteve" <aesteve@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	qemu-devel <qemu-devel@nongnu.org>,
	virtio-comment@lists.linux.dev, dev@lists.cloudhypervisor.org,
	rust-vmm@lists.opendev.org,
	"Stefano Garzarella" <sgarzare@redhat.com>,
	"Manos Pitsidianakis" <manos.pitsidianakis@linaro.org>,
	"Demi Marie Obenour" <demi@invisiblethingslab.com>,
	"Alyssa Ross" <hi@alyssa.is>,
	"Mark Burton" <MBURTON@qti.qualcomm.com>,
	"Matti Moell" <matti@qti.qualcomm.com>,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	"Sergio Lopez" <slp@redhat.com>,
	"Vishwanath Seshagiri" <vishs@meta.com>,
	"Rob Bradford" <rbradford@meta.com>,
	"Zhengyu Zhao" <zhaozhengyu@bytedance.com>,
	"Jorge E. Moreira" <jemoreira@google.com>
Subject: Re: Where should the vhost-user specification live?
Date: Thu, 11 Jun 2026 16:45:10 -0400	[thread overview]
Message-ID: <20260611164404-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20260611203915.GB237427@fedora>

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 <stefanha@gmail.com> wrote:
> > > >
> > > > On Tue, Jun 9, 2026 at 2:51 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> > > > >
> > > > > On Tue, 9 Jun 2026 at 19:00, Stefan Hajnoczi <stefanha@gmail.com> 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.
> 
> > If we're considering a move of the spec, we should probably consider
> > the best home for some of the related code parts too:
> > 
> >   subprojects/libvhost-user/
> >   contrib/vhost-user-blk/
> >   contrib/vhost-user-bridge/
> >   contrib/vhost-user-gpu/
> >   contrib/vhost-user-input/
> >   contrib/vhost-user-scsi/
> > 
> > IIUC, the subprojects is fully standalone code with no dependency
> > on QEMU. It remained within QEMU for "convenience" allowing us to
> > consume them from the impls under contrib/. While the contrib code
> > has some depedencies on QEMU, overall they appear pretty light and
> > so likely easily detached
> > 
> >   $ git grep '#include "' vhost-user-* | awk '{print $2}' | sort | uniq
> >   "hw/virtio/virtio-gpu-bswap.h"
> >   "hw/virtio/virtio-gpu-pixman.h"
> >   "libvhost-user-glib.h"
> >   "libvhost-user.h"
> >   "qapi/error.h"
> >   "qemu/atomic.h"
> >   "qemu/bswap.h"
> >   "qemu/ctype.h"
> >   "qemu/drm.h"
> >   "qemu/iov.h"
> >   "qemu/osdep.h"
> >   "qemu/queue.h"
> >   "qemu/sockets.h"
> >   "standard-headers/linux/input.h"
> >   "standard-headers/linux/virtio_blk.h"
> >   "standard-headers/linux/virtio_gpu.h"
> >   "standard-headers/linux/virtio_input.h"
> >   "standard-headers/linux/virtio_net.h"
> >   "standard-headers/linux/virtio_scsi.h"
> >   "virgl.h"
> >   "vugbm.h"
> >   "vugpu.h"
> > 
> > 
> > We have a often repeated desire to eliminate the "contrib" tree
> > as a concept, since it is currently effectively a "dumping ground"
> > for things which are either unmaintained or didn't have a better
> > home yet. This might be a chance to provide a better home for a
> > big part of it.
> > 
> > IMHO this suggests it is worth creating a new top level gitlab project
> > for it all to live in and form a dedicated team around it, rather than
> > trying to pick any existing location.
> 
> Some vhost-user back-ends in the contrib/ directory are used by QEMU's
> test suite. An alternative way of integrating them into the tests could
> be found, but I wanted to mention that dependency.
> 
> Stefan



  reply	other threads:[~2026-06-11 20:45 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-27  9:13 Where should the vhost-user specification live? Alex Bennée
2026-05-27 12:55 ` Michael S. Tsirkin
2026-05-27 13:58   ` Alex Bennée
2026-06-01 12:32 ` Albert Esteve
2026-06-01 12:39   ` Michael S. Tsirkin
2026-06-01 13:05     ` Albert Esteve
2026-06-01 13:11       ` Michael S. Tsirkin
2026-06-01 13:51         ` Stefan Hajnoczi
2026-06-01 14:22           ` Michael S. Tsirkin
2026-06-01 16:58             ` Stefan Hajnoczi
2026-06-01 14:27           ` Albert Esteve
2026-06-01 14:37             ` Michael S. Tsirkin
2026-06-01 15:18             ` Stefan Hajnoczi
2026-06-01 20:04               ` Michael S. Tsirkin
2026-06-02 10:38                 ` Dorinda Bassey
2026-06-04 16:28                   ` Stefan Hajnoczi
2026-06-09 17:59                     ` Stefan Hajnoczi
2026-06-09 18:50                       ` Peter Maydell
2026-06-09 19:44                         ` Stefan Hajnoczi
2026-06-09 19:51                           ` Peter Maydell
2026-06-10  8:37                             ` Daniel P. Berrangé
2026-06-11 20:39                               ` Stefan Hajnoczi
2026-06-11 20:45                                 ` Michael S. Tsirkin [this message]
2026-06-12  7:49                                   ` Stefano Garzarella
2026-06-12  9:31                                 ` Sergio Lopez Pascual
2026-06-11 20:17                             ` Stefan Hajnoczi
2026-06-09 20:36                           ` Michael S. Tsirkin
2026-06-10 13:03                             ` Stefan Hajnoczi
2026-06-10 16:39                               ` Daniel P. Berrangé
2026-06-11 20:43                                 ` Stefan Hajnoczi
2026-06-09 18:55                       ` Manos Pitsidianakis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260611164404-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=MBURTON@qti.qualcomm.com \
    --cc=aesteve@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=dbassey@redhat.com \
    --cc=demi@invisiblethingslab.com \
    --cc=dev@lists.cloudhypervisor.org \
    --cc=hi@alyssa.is \
    --cc=jemoreira@google.com \
    --cc=manos.pitsidianakis@linaro.org \
    --cc=matti@qti.qualcomm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rbradford@meta.com \
    --cc=rust-vmm@lists.opendev.org \
    --cc=sgarzare@redhat.com \
    --cc=slp@redhat.com \
    --cc=stefanha@gmail.com \
    --cc=stefanha@redhat.com \
    --cc=viresh.kumar@linaro.org \
    --cc=virtio-comment@lists.linux.dev \
    --cc=vishs@meta.com \
    --cc=zhaozhengyu@bytedance.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.