summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhangkui <zhangkui@oppo.com>2021-09-02 15:01:11 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2021-09-03 09:58:18 -0700
commitd5fffc5aff269717a035baa087630adca612a6c4 (patch)
treeb81923d12a8e57ef14e32cccae59d0c5f20c18fb
parent33090af97350cee9ea0e347301cef704bd5b0d8e (diff)
mm/madvise: add MADV_WILLNEED to process_madvise()
There is a usecase in Android that an app process's memory is swapped out by process_madvise() with MADV_PAGEOUT, such as the memory is swapped to zram or a backing device. When the process is scheduled to running, like switch to foreground, multiple page faults may cause the app dropped frames. To reduce the problem, System Management Software can read-ahead memory of the process immediately when the app switches to forground. Calling process_madvise() with MADV_WILLNEED can meet this need. Link: https://lkml.kernel.org/r/20210804082010.12482-1-zhangkui@oppo.com Signed-off-by: zhangkui <zhangkui@oppo.com> Cc: David Hildenbrand <david@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/madvise.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mm/madvise.c b/mm/madvise.c
index 5c065bc8b5f6..4a15a83031f6 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -1048,6 +1048,7 @@ process_madvise_behavior_valid(int behavior)
switch (behavior) {
case MADV_COLD:
case MADV_PAGEOUT:
+ case MADV_WILLNEED:
return true;
default:
return false;