[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YfAEqzTeBJSIOKcA@casper.infradead.org>
Date: Tue, 25 Jan 2022 14:09:47 +0000
From: Matthew Wilcox <willy@...radead.org>
To: "Kirill A. Shutemov" <kirill@...temov.name>
Cc: Khalid Aziz <khalid.aziz@...cle.com>, akpm@...ux-foundation.org,
longpeng2@...wei.com, arnd@...db.de, dave.hansen@...ux.intel.com,
david@...hat.com, rppt@...nel.org, surenb@...gle.com,
linux-kernel@...r.kernel.org, linux-mm@...ck.org
Subject: Re: [RFC PATCH 0/6] Add support for shared PTEs across processes
On Tue, Jan 25, 2022 at 04:59:17PM +0300, Kirill A. Shutemov wrote:
> On Tue, Jan 25, 2022 at 01:23:21PM +0000, Matthew Wilcox wrote:
> > On Tue, Jan 25, 2022 at 02:42:12PM +0300, Kirill A. Shutemov wrote:
> > > I wounder if we can get away with zero-API here: we can transparently
> > > create/use shared page tables for any inode on mmap(MAP_SHARED) as long as
> > > size and alignment is sutiable. Page tables will be linked to the inode
> > > and will be freed when the last of such mapping will go away. I don't see
> > > a need in new syscalls of flags to existing one.
> >
> > That's how HugeTLBfs works today, right? Would you want that mechanism
> > hoisted into the real MM? Because my plan was the opposite -- remove it
> > from the shadow MM once mshare() is established.
>
> I hate HugeTLBfs because it is a special place with own rules. mshare() as
> it proposed creates a new special place. I don't like this.
No new special place. I suppose the only thing it creates that's "new"
is an MM without any threads of its own. And from the MM point of view,
that's not a new thing at all because the MM simply doesn't care how
many threads share an MM.
> It's better to find a way to integrate the feature natively into core-mm
> and make as much users as possible to benefit from it.
That's what mshare is trying to do!
> I think zero-API approach (plus madvise() hints to tweak it) is worth
> considering.
I think the zero-API approach actually misses out on a lot of
possibilities that the mshare() approach offers. For example, mshare()
allows you to mmap() many small files in the shared region -- you
can't do that with zeroAPI.
Powered by blists - more mailing lists