From: "Liam R. Howlett" <Liam.Howlett@oracle.com>
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Suren Baghdasaryan <surenb@google.com>,
David Hildenbrand <david@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Vlastimil Babka <vbabka@suse.cz>, Jann Horn <jannh@google.com>,
Pedro Falcato <pfalcato@suse.de>, Kees Cook <kees@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
linux-mm@kvack.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/4] mm: perform VMA allocation, freeing, duplication in mm
Date: Fri, 25 Apr 2025 07:00:27 -0400 [thread overview]
Message-ID: <j2yh25inlak4ra55lfpiwl2cxumrajauvuwqs56ebkidj33hxm@aob3bnwmuaei> (raw)
In-Reply-To: <80c17a17-e462-4e4c-8736-3d8f1eecf70f@lucifer.local>
* Lorenzo Stoakes <lorenzo.stoakes@oracle.com> [250425 06:45]:
...
> > > >
> > > > I think doing it this way fits the patterns we have established for
> > > > nommu/mmap separation, and I would say nommu is enough of a niche edge case
> > > > for us to really not want to have to go to great lengths to find ways of
> > > > sharing code.
> > > >
> > > > I am quite concerned about us having to consider it and deal with issues
> > > > around it so often, so want to try to avoid that as much as we can,
> > > > ideally.
> > >
> > > I think you're asking for more issues the way you have it now. It could
> > > be a very long time until someone sees that nommu isn't working,
> > > probably an entire stable kernel cycle. Basically the longest time it
> > > can go before being deemed unnecessary to fix.
> > >
> > > It could also be worse, it could end up like the arch code with bugs
> > > over a decade old not being noticed because it was forked off into
> > > another file.
> > >
> > > Could we create another file for the small section of common code and
> > > achieve your goals?
> >
> > That'd completely defeat the purpose of isolating core functions to vma.c.
> >
> > Again, I don't believe that bending over backwards to support this niche
> > use is appropriate.
> >
> > And if you're making a change to vm_area_alloc(), vm_area_free(),
> > vm_area_init_from(), vm_area_dup() it'd seem like an oversight not to check
> > nommu right?
> >
> > There's already a large amount of duplicated logic there specific to nommu
> > for which precisely the same could be said, including entirely parallel
> > brk(), mmap() implementations.
> >
> > So this isn't a change in how we handle nommu.
>
> I guess an alternative is to introduce a new vma_shared.c, vma_shared.h
> pair of files here, that we try to allow userland isolation for so vma.c
> can still use for userland testing.
>
> This then aligns with your requirement, and keeps it vma-centric like
> Suren's suggestion.
>
> Or perhaps it could even be vma_init.c, vma_init.h? To denote that it
> references the initialisation and allocation, etc. of VMAs?
Sure, the name isn't as important as the concept, but I like vma_init
better than vma_shared.
>
> Anyway we do that, we share it across all, and it solves all
> problems... gives us the isolation for userland testing and also isolation
> in mm, while also ensuring no code duplication with nommu.
>
> That work?
Yes, this is what I was suggesting.
I really think this is the least painful way to deal with nommu.
Otherwise we will waste more time later trying to fix what was
overlooked.
Thanks,
Liam
next prev parent reply other threads:[~2025-04-25 11:00 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-24 21:15 [PATCH 0/4] move all VMA allocation, freeing and duplication logic to mm Lorenzo Stoakes
2025-04-24 21:15 ` [PATCH 1/4] mm: abstract initial stack setup to mm subsystem Lorenzo Stoakes
2025-04-24 21:30 ` David Hildenbrand
2025-04-25 0:55 ` Suren Baghdasaryan
2025-04-25 10:10 ` Lorenzo Stoakes
2025-04-25 10:11 ` Lorenzo Stoakes
2025-04-24 21:15 ` [PATCH 2/4] mm: perform VMA allocation, freeing, duplication in mm Lorenzo Stoakes
2025-04-24 21:22 ` David Hildenbrand
2025-04-25 1:22 ` Suren Baghdasaryan
2025-04-25 1:37 ` Suren Baghdasaryan
2025-04-25 10:10 ` Lorenzo Stoakes
2025-04-25 11:04 ` Lorenzo Stoakes
2025-04-25 10:09 ` Lorenzo Stoakes
2025-04-25 10:26 ` Liam R. Howlett
2025-04-25 10:31 ` Lorenzo Stoakes
2025-04-25 10:45 ` Lorenzo Stoakes
2025-04-25 11:00 ` Liam R. Howlett [this message]
2025-04-25 11:03 ` Lorenzo Stoakes
2025-04-25 10:17 ` Lorenzo Stoakes
2025-04-25 3:15 ` Kees Cook
2025-04-25 10:40 ` Lorenzo Stoakes
2025-04-25 10:53 ` Pedro Falcato
2025-04-25 13:54 ` Liam R. Howlett
2025-04-25 15:32 ` Suren Baghdasaryan
2025-04-25 15:34 ` Suren Baghdasaryan
2025-04-25 17:12 ` Kees Cook
2025-04-25 17:26 ` Suren Baghdasaryan
2025-04-24 21:15 ` [PATCH 3/4] mm: move dup_mmap() to mm Lorenzo Stoakes
2025-04-25 9:13 ` Pedro Falcato
2025-04-25 10:18 ` Lorenzo Stoakes
2025-04-24 21:15 ` [PATCH 4/4] mm: move vm_area_alloc,dup,free() functions to vma.c Lorenzo Stoakes
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=j2yh25inlak4ra55lfpiwl2cxumrajauvuwqs56ebkidj33hxm@aob3bnwmuaei \
--to=liam.howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=brauner@kernel.org \
--cc=david@redhat.com \
--cc=jack@suse.cz \
--cc=jannh@google.com \
--cc=kees@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=pfalcato@suse.de \
--cc=surenb@google.com \
--cc=vbabka@suse.cz \
--cc=viro@zeniv.linux.org.uk \
/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