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

From: Andrew Morton
Date: Mon Apr 25 2016 - 20:09:36 EST


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.

> 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.
>
> ...
>