Thread (55 messages) 55 messages, 12 authors, 2021-08-17

Re: [RFC PATCH 0/5] madvise MADV_DOEXEC

From: Matthew Wilcox <willy@infradead.org>
Date: 2021-08-16 14:43:27
Also in: lkml

On Mon, Aug 16, 2021 at 04:33:09PM +0200, David Hildenbrand wrote:
quoted
quoted
I did not follow why we have to play games with MAP_PRIVATE, and having
private anonymous pages shared between processes that don't COW, introducing
new syscalls etc.
It's not about SHMEM, it's about file-backed pages on regular
filesystems.  I don't want to have XFS, ext4 and btrfs all with their
own implementations of ARCH_WANT_HUGE_PMD_SHARE.
Let me ask this way: why do we have to play such games with MAP_PRIVATE?
Are you referring to this?

: Mappings within this address range behave as if they were shared
: between threads, so a write to a MAP_PRIVATE mapping will create a
: page which is shared between all the sharers.

If so, that's a misunderstanding, because there are no games being played.
What Khalid's saying there is that because the page tables are already
shared for that range of address space, the COW of a MAP_PRIVATE will
create a new page, but that page will be shared between all the sharers.
The second write to a MAP_PRIVATE page (by any of the sharers) will not
create a COW situation.  Just like if all the sharers were threads of
the same process.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help