FROMLIST: 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, SMS 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://lore.kernel.org/patchwork/patch/1472006/
Bug: 194967441
Signed-off-by: Kui Zhang <zhagnkui@oppo.com>
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: Ie4203ff76da74cf34498cfee6569a6c7fc624bb2
This commit is contained in:
Liujie Xie 2021-08-14 14:46:42 +08:00 committed by Suren Baghdasaryan
parent ff7eccee30
commit 2e06e5e6f8

View File

@ -996,6 +996,7 @@ process_madvise_behavior_valid(int behavior)
switch (behavior) {
case MADV_COLD:
case MADV_PAGEOUT:
case MADV_WILLNEED:
return true;
default:
return false;