[QUESTION] About VM_LOCKONFAULT for file page
From: Yang Shi
Date: Mon Jun 04 2018 - 14:56:19 EST
Hi folks,
I did a quick test with mlock2 + VM_LOCKONFAULT flag. The test just does
an 1MB anonymous map and 1MB file map with VM_LOCKONFAULT respectively.
Then it tries to access one page of each mapping.
From /proc/meminfo, I can see 1 page marked mlocked from anonymous
mapping. But, the page from file mapping is *not* marked as mlocked.
I can see the do_anonymous_page() calls
lru_cache_add_active_or_unevictable() to set the page's PG_mlocked flag.
But, do_read_fault()/do_shared_fault()/do_cow_fault() don't do it, it
looks they just do it for COW page.
I'm a little bit confused. Does VM_LOCKONFAULT work for anonymous map
only? Or did I miss something? Any hint is appreciated.
Thanks,
Yang