Questions about page fault of memfd/shmem

From: Peng Liang
Date: Sat Nov 27 2021 - 04:21:51 EST


Hi all,

I'm a user-space developer and I want to use memfd to share some memory
between parent and child processes.

For the demo, it works well. However, I fount that the RSS of the
process using memfd will grow up faster than that using anonymous
mappings. Dig some memfd/shmem code and I find that memfd/shmem will
allocate a page for a read page fault.

For my use case, the process may allocate tens or even hundreds of GiB
memory using memfd. So allocating all memory just because of reading it
will has a great impact.

Could memfd/shmem map to the global zero page instead of allocating a
page for a read page fault?

Thanks,
Peng