ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: David Disseldorp <ddiss@suse.de>
Cc: Kent Overstreet <kent.overstreet@linux.dev>,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	Matthew Wilcox <willy@infradead.org>,
	Christoph Hellwig <hch@infradead.org>,
	ksummit@lists.linux.dev, linux-fsdevel@vger.kernel.org,
	Hajime Tazaki <thehajime@gmail.com>,
	Octavian Purdila <tavi.purdila@gmail.com>
Subject: Re: [MAINTAINERS/KERNEL SUMMIT] Trust and maintenance of file systems
Date: Tue, 12 Sep 2023 09:05:49 +1000	[thread overview]
Message-ID: <ZP+dTfwJP44wZwSV@dread.disaster.area> (raw)
In-Reply-To: <20230911153515.2a256856@echidna.fritz.box>

On Mon, Sep 11, 2023 at 03:35:15PM +0200, David Disseldorp wrote:
> On Mon, 11 Sep 2023 12:07:07 +1000, Dave Chinner wrote:
> > On Sun, Sep 10, 2023 at 09:29:14PM -0400, Kent Overstreet wrote:
> > > What I've got in bcachefs-tools is a much thinner mapping from e.g.
> > > kthreads -> pthreads, block layer -> aio, etc.  
> > 
> > Right, and we've got that in userspace for XFS, too. If we really
> > cared that much about XFS-FUSE, I'd be converting userspace to use
> > ublk w/ io_uring on top of a port of the kernel XFS buffer cache as
> > the basis for a performant fuse implementation. However, there's a
> > massive amount of userspace work needed to get a native XFS FUSE
> > implementation up and running (even ignoring performance), so it's
> > just not a viable short-term - or even medium-term - solution to the
> > current problems.
> > 
> > Indeed, if you do a fuse->fs ops wrapper, I'd argue that lklfuse is
> > the place to do it so that there is a single code base that supports
> > all kernel filesystems without requiring anyone to support a
> > separate userspace code base. Requiring every filesystem to do their
> > own FUSE ports and then support them doesn't reduce the overall
> > maintenance overhead burden on filesystem developers....
> 
> LKL is still implemented as a non-mmu architecture. The only fs specific
> downstream change that lklfuse depends on is non-mmu xfs_buf support:
> https://lore.kernel.org/linux-xfs/1447800381-20167-1-git-send-email-octavian.purdila@intel.com/

That was proposed in 2015.

> Does your lklfuse enthusiasm here imply that you'd be willing to
> reconsider Octavian's earlier proposal for XFS non-mmu support?

8 years a long time, circumstances change and we should always be
open to changing our minds when presented with new circumstances
and/or evidence.

Context: back in 2015 I was in the middle of a significant revamp of
the kernel and userspace code - that was when the shared libxfs
codebase was new and being actively developed, along with a
significant rework of all the userspace shims.  One of the things
that I was looking at the time was pulling everything into userspace
via libxfs that was needed for a native XFS-FUSE implementation.
That project never got that far - maintainer burnout happened before
that ever became a reality.

In that context, lklfuse didn't really make a whole lot of sense for
providing userspace XFS support via fuse because a native FUSE
solution would be much better in most regards (especially
performance). Things have changed a whole lot since then. We have
less fs developers, we have a antagonistic, uncooperative testing
"community", we have more code and releases to support, etc.

If we go back to what I said earlier about the minimum requirements
for a "community supported filesystem", it was about needing three
things:

- mkfs and fsck coverage
- fstests support
- syzbot doesn't get run on it

Now reconsider lklfuse from this perspective. We have #1 for most
filesystems, #2 is pretty trivial, and #3 is basically "syzbot +
lklfuse > /dev/null"...

IOWs, we can largely validate that lklfuse doesn't eat your data
with relatively little extra effort. We can provide userspace with a
viable, supported mechanism for unprivileged mounts of untrusted
filesystem images that can't lead to kernel compromise. And,
largely, we retain control of the quality of the lklfuse
implementation because it's running the kernel code that we already
maintain and support.

Times change, circumstances change, and if we aren't willing to
change our minds because we need to solve the new challenges
presented to us then we should not be in decision making
positions....

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  parent reply	other threads:[~2023-09-11 23:05 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-30 14:07 Christoph Hellwig
2023-09-05 23:06 ` Dave Chinner
2023-09-05 23:23   ` Matthew Wilcox
2023-09-06  2:09     ` Dave Chinner
2023-09-06 15:06       ` Christian Brauner
2023-09-06 15:59         ` Christian Brauner
2023-09-06 19:09         ` Geert Uytterhoeven
2023-09-08  8:34         ` Christoph Hellwig
2023-09-07  0:46     ` Bagas Sanjaya
2023-09-09 12:50     ` James Bottomley
2023-09-09 15:44       ` Matthew Wilcox
2023-09-10 19:51         ` James Bottomley
2023-09-10 20:19           ` Kent Overstreet
2023-09-10 21:15           ` Guenter Roeck
2023-09-11  3:10           ` Theodore Ts'o
2023-09-11 19:03             ` James Bottomley
2023-09-12  0:23               ` Dave Chinner
2023-09-12 16:52             ` H. Peter Anvin
2023-09-09 22:42       ` Kent Overstreet
2023-09-10  8:19         ` Geert Uytterhoeven
2023-09-10  8:37           ` Bernd Schubert
2023-09-10 16:35           ` Kent Overstreet
2023-09-10 17:26             ` Geert Uytterhoeven
2023-09-10 17:35               ` Kent Overstreet
2023-09-11  1:05         ` Dave Chinner
2023-09-11  1:29           ` Kent Overstreet
2023-09-11  2:07             ` Dave Chinner
2023-09-11 13:35               ` David Disseldorp
2023-09-11 17:45                 ` Bart Van Assche
2023-09-11 19:11                   ` David Disseldorp
2023-09-11 23:05                 ` Dave Chinner [this message]
2023-09-26  5:24           ` Eric W. Biederman
2023-09-08  8:55   ` Christoph Hellwig
2023-09-08 22:47     ` Dave Chinner
2023-09-06 22:32 ` Guenter Roeck
2023-09-06 22:54   ` Dave Chinner
2023-09-07  0:53     ` Bagas Sanjaya
2023-09-07  3:14       ` Dave Chinner
2023-09-07  1:53     ` Steven Rostedt
2023-09-07  2:22       ` Dave Chinner
2023-09-07  2:51         ` Steven Rostedt
2023-09-07  3:26           ` Matthew Wilcox
2023-09-07  8:04             ` Thorsten Leemhuis
2023-09-07 10:29               ` Christian Brauner
2023-09-07 11:18                 ` Thorsten Leemhuis
2023-09-07 12:04                   ` Matthew Wilcox
2023-09-07 12:57                   ` Guenter Roeck
2023-09-07 13:56                     ` Christian Brauner
2023-09-08  8:44                     ` Christoph Hellwig
2023-09-07  3:38           ` Dave Chinner
2023-09-07 11:18             ` Steven Rostedt
2023-09-13 16:43               ` Eric Sandeen
2023-09-13 16:58                 ` Guenter Roeck
2023-09-13 17:03                 ` Linus Torvalds
2023-09-15 22:48                   ` Dave Chinner
2023-09-16 19:44                     ` Steven Rostedt
2023-09-16 21:50                     ` James Bottomley
2023-09-17  1:40                       ` NeilBrown
2023-09-17 17:30                         ` Linus Torvalds
2023-09-17 18:09                           ` Linus Torvalds
2023-09-17 18:57                           ` Theodore Ts'o
2023-09-17 19:45                             ` Linus Torvalds
2023-09-18 11:14                               ` Jan Kara
2023-09-18 17:26                                 ` Linus Torvalds
2023-09-18 19:32                                   ` Jiri Kosina
2023-09-18 19:59                                     ` Linus Torvalds
2023-09-18 20:50                                       ` Theodore Ts'o
2023-09-18 22:48                                         ` Linus Torvalds
2023-09-18 20:33                                     ` H. Peter Anvin
2023-09-19  4:56                                   ` Dave Chinner
2023-09-25  9:43                                     ` Christoph Hellwig
2023-09-27 22:23                                 ` Dave Kleikamp
2023-09-19  1:15                           ` Dave Chinner
2023-09-19  5:17                             ` Matthew Wilcox
2023-09-19 16:34                               ` Theodore Ts'o
2023-09-19 16:45                                 ` Matthew Wilcox
2023-09-19 17:15                                   ` Linus Torvalds
2023-09-19 22:57                               ` Dave Chinner
2023-09-18 14:54                       ` Bill O'Donnell
2023-09-19  2:44                       ` Dave Chinner
2023-09-19 16:57                         ` James Bottomley
2023-09-25  9:38                   ` Christoph Hellwig
2023-09-25 14:14                     ` Dan Carpenter
2023-09-25 16:50                     ` Linus Torvalds
2023-09-07  9:48       ` Dan Carpenter
2023-09-07 11:04         ` Segher Boessenkool
2023-09-07 11:22           ` Steven Rostedt
2023-09-07 12:24             ` Segher Boessenkool
2023-09-07 11:23           ` Dan Carpenter
2023-09-07 12:30             ` Segher Boessenkool
2023-09-12  9:50               ` Richard Biener
2023-10-23  5:19                 ` Eric Gallager
2023-09-08  8:39       ` Christoph Hellwig
2023-09-08  8:38     ` Christoph Hellwig
2023-09-08 23:21       ` Dave Chinner
2023-09-07  0:48   ` Bagas Sanjaya
2023-09-07  3:07     ` Guenter Roeck

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=ZP+dTfwJP44wZwSV@dread.disaster.area \
    --to=david@fromorbit.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=ddiss@suse.de \
    --cc=hch@infradead.org \
    --cc=kent.overstreet@linux.dev \
    --cc=ksummit@lists.linux.dev \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=tavi.purdila@gmail.com \
    --cc=thehajime@gmail.com \
    --cc=willy@infradead.org \
    /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