Re: [PATCH] tmpfs: fix VM_MAYSHARE mappings for NOMMU

From: Rich Felker
Date: Mon Apr 25 2016 - 20:41:33 EST


On Mon, Apr 25, 2016 at 05:09:09PM -0700, Andrew Morton wrote:
> On Fri, 22 Apr 2016 18:19:44 -0400 Rich Felker <dalias@xxxxxxxx> wrote:
>
> > Subject: [PATCH] tmpfs: fix VM_MAYSHARE mappings for NOMMU
>
> I take it that "ramfs" was intended here.

They're two names for the same thing; I'm not sure which should be
preferred.

Rich


>
> > The nommu do_mmap expects f_op->get_unmapped_area to either succeed or
> > return -ENOSYS for VM_MAYSHARE (e.g. private read-only) mappings.
> > Returning addr in the non-MAP_SHARED case was completely wrong, and
> > only happened to work because addr was 0. However, it prevented
> > VM_MAYSHARE mappings from sharing backing with the fs cache, and
> > forced such mappings (including shareable program text) to be copied
> > whenever the number of mappings transitioned from 0 to 1, impacting
> > performance and memory usage. Subsequent mappings beyond the first
> > still correctly shared memory with the first.
> >
> > Instead, treat VM_MAYSHARE identically to VM_SHARED at the file ops
> > level; do_mmap already handles the semantic differences between them.
> >
> > ...
> >