From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: mszeredi@redhat.com, marcandre.lureau@redhat.com,
qemu-devel@nongnu.org, stefanha@redhat.com, vgoyal@redhat.com
Subject: Re: virtiofsd: Where should it live?
Date: Tue, 26 Nov 2019 12:14:16 +0000 [thread overview]
Message-ID: <20191126121416.GE2928@work-vm> (raw)
In-Reply-To: <20191126102600.GG556568@redhat.com>
* Daniel P. Berrangé (berrange@redhat.com) wrote:
> On Mon, Nov 25, 2019 at 06:50:21PM +0000, Dr. David Alan Gilbert wrote:
> > Hi,
> > There's been quite a bit of discussion about where virtiofsd, our
> > implemenation of a virtiofs daemon, should live. I'd like to get
> > this settled now, because I'd like to tidy it up for the next
> > qemu cycle.
> >
> > For reference it's based on qemu's livhost-user+chunks of libfuse.
> > It can't live in libfuse because we change enough of the library
> > to break their ABI. It's C, and we've got ~100 patches - which
> > we can split into about 3 chunks.
> >
> > Some suggestions so far:
> > a) In contrib
> > This is my current working assumption; the main objection is it's
> > a bit big and pulls in a chunk of libfuse.
>
> My main objection to 'contrib/' is actually the perceived notions
> about what the contrib directory is for. When I see 'contrib/'
> code in either QEMU, or other open source projects, my general
> impression is that this is largely unsupported code which is just
> there as it might be interesting to someone, and doesn't typically
> get much ongoing dev attention.
>
> Parts that are fully supported & actively developed by projects
> usually live elsewhere like a src/ or lib/ or tools/ directory.
>
> This has kind of been the case with QEMU historically, with
> the vhost-user-blk, vhost-user-scsi not being real production
> quality implementations. Rather they are just technology demos
> to show what you might do. vhost-user-gpu/input blurred this
> boundary a bit as they're more supported tools, and so I'd
> argue contrib/ probably wasn't the right place for them either
> in hindsight.
>
> virtiofsd is definitely different as it is intended to be a
> fully production quality supported tool with active dev into
> the future IIUC.
>
> IOW, if we did decide we want it in QEMU, then instead of
> '$GIT/contrib/virtiofsd', I'd prefer to see '$GIT/virtiofsd'.
I'm not sure it deserves a new top level for such a specific tool.
> > b) In a submodule
> >
> > c) Just separate
> >
> > Your suggestions/ideas please. My preference is (a).
>
> What I'm wondering is just how much sharing / overlap of code and concepts
> and community operation there is going otbetween QEMU and virtiofsd. From
> the tech POV, IIUC, the main blocker it would need to be in QEMU is because
> it links to libvhost-user and we've not declared that to be a stable API
> for 3rd party linking.
>
> Personally I'm always biased towards self-contained apps being in their
> own repositories, rather than bundling too much stuff into one repo. You
> can see that in the way we've created independant git repos for any libvirt
> module that didn't need to be part of the main libvirt.git.
>
> To me the key benefit this gives is flexibility in approach. ie the app
> doesn't need to blindly follow every precedent that QEMU has set. It
> can instead take the most appropriate path for its needs. For example...
>
> It could use meson for its build system already. This would be good as
> builds will be done in a matter of seconds. For contributors it would
> be a much less daunting project to join as it wouldn't be lost in the
> firehose of other non-virtiofsd contributions on qemu-devel.
>
> It doesn't have to follow QEMU's 3-times a year release model, with 6
> week long freeze periods. It can be more agile releasing 6 times a year
> with 1 week freezes if desired, I personally think tihs would be quite
> desirable for a young project like virtiofsd which is evolving rapidly
> as it would get new work available to users much more rapidly.
Form virtiofsd's point of view I'm not that worried about the release
cycle; Given that features have to go through virtio standardisation,
the release ycle is unlikely to be a bottleneck.
> It doesn't have to follow QEMU's API stability & deprecation policies.
> It could be more flexible in taking non-compatible changes, which again
> may be valuable for a young rapidly evolving app.
>
>
>
> Anyway to be clear, I'm not a contributor to virtiofsd, nor likely to
> be one in the future, so just consider this a personal POV. From QEMU's
> POV I don't think it'll matter whether virtiofsd in or out of QEMU git.
> It is more about the impact & burden QEMU's dev process & standards might
> impose on virtiofsd itself.
As a qemu contributor, your opinion is welcome! No need to sit on the
fence.
> I'm fine with whatever option above is chosen, with the only caveat
> being that if its in qemu.git, I don't think it belongs under contrib/
> it should be a top level dir of its own.
>
Dave
> Regards,
> Daniel
> --
> |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org -o- https://fstop138.berrange.com :|
> |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2019-11-26 12:15 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-25 18:50 virtiofsd: Where should it live? Dr. David Alan Gilbert
2019-11-26 9:02 ` Marc-André Lureau
2019-11-26 11:42 ` Dr. David Alan Gilbert
2019-11-26 10:26 ` Daniel P. Berrangé
2019-11-26 12:14 ` Dr. David Alan Gilbert [this message]
2019-12-02 10:12 ` Peter Maydell
2019-12-02 12:56 ` Markus Armbruster
2019-12-02 13:32 ` Thomas Huth
2019-12-02 15:39 ` Markus Armbruster
2019-12-02 15:55 ` Dr. David Alan Gilbert
2019-12-03 10:53 ` Dr. David Alan Gilbert
2019-12-03 11:06 ` Peter Maydell
2019-12-03 11:17 ` Dr. David Alan Gilbert
2019-12-03 11:19 ` Daniel P. Berrangé
2019-12-03 13:06 ` Dr. David Alan Gilbert
2019-12-04 7:43 ` Markus Armbruster
2019-12-04 8:17 ` Gerd Hoffmann
2019-12-04 13:28 ` Kevin Wolf
2019-12-04 13:29 ` Thomas Huth
2019-12-04 14:36 ` Eric Blake
2019-12-04 16:33 ` Dr. David Alan Gilbert
2019-12-04 12:04 ` Dr. David Alan Gilbert
2019-12-04 13:10 ` Markus Armbruster
2019-12-04 14:34 ` Eric Blake
2019-12-03 12:59 ` Paolo Bonzini
2019-12-03 13:02 ` Dr. David Alan Gilbert
2019-12-03 13:07 ` Paolo Bonzini
2019-12-03 13:10 ` Dr. David Alan Gilbert
2019-12-03 16:08 ` Greg Kurz
2019-12-02 9:37 ` Michael S. Tsirkin
2019-12-02 16:44 ` Dr. David Alan Gilbert
2019-12-02 16:52 ` Michael S. Tsirkin
2019-12-02 17:01 ` Dr. David Alan Gilbert
2019-12-02 17:16 ` Christophe de Dinechin
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=20191126121416.GE2928@work-vm \
--to=dgilbert@redhat.com \
--cc=berrange@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mszeredi@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=vgoyal@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).