xfs
[Top] [All Lists]

Re: [RFC PATCH] xfs: support for non-mmu architectures

To: Brian Foster <bfoster@xxxxxxxxxx>
Subject: Re: [RFC PATCH] xfs: support for non-mmu architectures
From: Octavian Purdila <octavian.purdila@xxxxxxxxx>
Date: Fri, 20 Nov 2015 17:31:59 +0200
Cc: Dave Chinner <david@xxxxxxxxxxxxx>, Richard Weinberger <richard.weinberger@xxxxxxxxx>, linux-fsdevel <linux-fsdevel@xxxxxxxxxxxxxxx>, LKML <linux-kernel@xxxxxxxxxxxxxxx>, xfs <xfs@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=TliNidH8cI6fhiXWncEiKqKHtTBEwS6G70B1Of932+A=; b=xYZMFKAxFIK4Pw6eX+RKDwUkTCNN6ndG273veRPenr2I06AdB8o2Jcj9OVe7Xvpvb9 83cO5r825TDXrn4J+Jhnoho7tMl2tWoAM39rNeEofLp5xXFKSNgabsiPTGPeEB+nJl+B l8ozKni92SLnrAi8mJt1L+LxKMsP997c+kZU/PuNwH035lMMdFw+SuxR+mGD/vhSD16K GqS1Qc+lpWMY3rNf2tnScdDXBaDVJcop87fL2tl/Q/wYE1hiiHtGLfRAMkZlklyQ49MU N8Miwwa5TGR1Q0GZhBhU9btIypHQ/v0dM8Hf1hwowTS7+h2bEi4q7U0okXS4ssJDUedj zpRA==
In-reply-to: <20151120152412.GC60886@xxxxxxxxxxxxxxx>
References: <1447800381-20167-1-git-send-email-octavian.purdila@xxxxxxxxx> <20151119232455.GM14311@dastard> <CAFLxGvx9x-4gnCQh7203G72Jy+EULbMnGTK=2r3ko=Yy9FB7Wg@xxxxxxxxxxxxxx> <20151120005843.GP14311@dastard> <CAE1zotLw-vCz2qF4JmXEYFF_yPbkhQ2HEEYxMwvdRbhKRCaxTw@xxxxxxxxxxxxxx> <20151120152412.GC60886@xxxxxxxxxxxxxxx>
On Fri, Nov 20, 2015 at 5:24 PM, Brian Foster <bfoster@xxxxxxxxxx> wrote:
> On Fri, Nov 20, 2015 at 04:26:28PM +0200, Octavian Purdila wrote:
>> On Fri, Nov 20, 2015 at 2:58 AM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:
>> > On Fri, Nov 20, 2015 at 12:54:02AM +0100, Richard Weinberger wrote:
>> >> On Fri, Nov 20, 2015 at 12:24 AM, Dave Chinner <david@xxxxxxxxxxxxx> 
>> >> wrote:
>> >> > On Wed, Nov 18, 2015 at 12:46:21AM +0200, Octavian Purdila wrote:
>> >> >> Naive implementation for non-mmu architectures: allocate physically
>> >> >> contiguous xfs buffers with alloc_pages. Terribly inefficient with
>> >> >> memory and fragmentation on high I/O loads but it may be good enough
>> >> >> for basic usage (which most non-mmu architectures will need).
>> >> >
>> >> > Can you please explain why you want to use XFS on low end, basic
>> >> > non-MMU devices? XFS is a high performance, enterprise/HPC level
>> >> > filesystem - it's not a filesystem designed for small IoT level
>> >> > devices - so I'm struggling to see why we'd want to expend any
>> >> > effort to make XFS work on such devices....
>> >>
>> >> The use case is the Linux Kernel Library:
>> >> https://lkml.org/lkml/2015/11/3/706
>> >>
>> >> Using LKL and fuse you can mount any kernel filesystem using fuse
>> >> as non-root.
>> >
>> > IOWs, because we said no to unprivileged mounts, instead the
>> > proposal is to linking all the kernel code into userspace so you can
>> > do unprivielged mounts that way?
>> >
>>
>> LKL's goal is to make it easy for various applications to reuse Linux
>> kernel code instead of re-implementing it. Mounting filesystem images
>> is just one of the applications.
>>
>> > IOWs, you get to say "it secure because it's in userspace" and leave
>> > us filesystem people with all the shit that comes with allowing
>> > users to mount random untrusted filesystem images using code that
>> > was never designed to allow that to happen?
>> >
>>
>> It is already possible to mount arbitrary filesystem images in
>> userspace using VMs . LKL doesn't change that, it just reduces the
>> amount of dependencies you need to do so.
>>
>
> Perhaps a dumb question, but I'm not quite putting 2+2 together here.
> When I see nommu, I'm generally thinking hardware characteristics, but
> we're talking about a userspace kernel library here. So can you
> elaborate on how this relates to nommu? Does this library emulate kernel
> mechanisms in userspace via nommu mode or something of that nature?
>

LKL is currently implemented as a virtual non-mmu architecture. That
makes it simpler and it will also allow us to support environments
where it is not possible to emulate paging (e.g.  bootloaders).

<Prev in Thread] Current Thread [Next in Thread>