mm/compaction: Disable compaction of unevictable pages

Compaction of running memory is a good thing. It's also required to
properly allocate memory for large applications, like new processes in
Chrome or make room for a large virtual machine. Unfortunately, the
default configuration of Linux allows all memory to be compacted.

This is a good thing for servers. An application running server side
can tolerate micro stalls since the latency impact is almost not
measurable (depending on the application, of course). But on a desktop
configuration with X, Wayland, Gnome, KDE, etc, the dropped frames and
lost input are very obvious.

Lets prevent these applications from having their memory moved during
compaction. Although compaction will take longer and new processes will
take longer to spawn under high memory pressure / external memory
fragmentation, the actual experience of the system will feel more
responsive and consistent under these adverse conditions.

This commit adapted from zen-kernel/zen-kernel@394ae0c

Signed-off-by: Rapherion Rollerscaperers <rapherion@raphielgang.org>
Change-Id: Ief43d38d3749da4ba7e7ccda3e448356ef1ecc2a
Signed-off-by: Lau <laststandrighthere@gmail.com>
This commit is contained in:
Rapherion Rollerscaperers
2020-02-01 19:26:03 +07:00
committed by DhineshCool
parent 652c5feda9
commit 283f0d40f4

View File

@@ -1210,7 +1210,7 @@ typedef enum {
* Allow userspace to control policy on scanning the unevictable LRU for
* compactable pages.
*/
int sysctl_compact_unevictable_allowed __read_mostly = 1;
int sysctl_compact_unevictable_allowed __read_mostly = 0;
/*
* Isolate all pages that can be migrated from the first suitable block,