diff options
Diffstat (limited to '0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch')
-rw-r--r-- | 0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch b/0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch deleted file mode 100644 index b4d02da6305a..000000000000 --- a/0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> -Date: Mon, 27 Jan 2020 18:21:09 +0100 -Subject: [PATCH] ZEN: INTERACTIVE: Enable background reclaim of hugepages - -Use [defer+madvise] as default khugepaged defrag strategy: - -For some reason, the default strategy to respond to THP fault fallbacks -is still just madvise, meaning stall if the program wants transparent -hugepages, but don't trigger a background reclaim / compaction if THP -begins to fail allocations. This creates a snowball affect where we -still use the THP code paths, but we almost always fail once a system -has been active and busy for a while. - -The option "defer" was created for interactive systems where THP can -still improve performance. If we have to fallback to a regular page due -to an allocation failure or anything else, we will trigger a background -reclaim and compaction so future THP attempts succeed and previous -attempts eventually have their smaller pages combined without stalling -running applications. - -We still want madvise to stall applications that explicitely want THP, -so defer+madvise _does_ make a ton of sense. Make it the default for -interactive systems, especially if the kernel maintainer left -transparent hugepages on "always". - -Reasoning and details in the original patch: https://lwn.net/Articles/711248/ ---- - init/Kconfig | 4 ++++ - mm/huge_memory.c | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/init/Kconfig b/init/Kconfig -index 3714f60c7aff537f1bd4e8aa8979a745ebe587f1..73b95d3f50300fb82220fb30dfe91bb12052f111 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -127,6 +127,10 @@ config ZEN_INTERACTIVE - Default scheduler for SQ..: mq-deadline -> bfq - Default scheduler for MQ..: none -> kyber - -+ --- Virtual Memory Subsystem --------------------------- -+ -+ Background-reclaim hugepages...: no -> yes -+ - config BROKEN - bool - -diff --git a/mm/huge_memory.c b/mm/huge_memory.c -index 834f288b376909c351fc2a21d77e200f8e83a802..a78a758f9815b043dd03f03bc8028b7d483a2a9c 100644 ---- a/mm/huge_memory.c -+++ b/mm/huge_memory.c -@@ -59,7 +59,11 @@ unsigned long transparent_hugepage_flags __read_mostly = - #ifdef CONFIG_TRANSPARENT_HUGEPAGE_MADVISE - (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG)| - #endif -+#ifdef CONFIG_ZEN_INTERACTIVE -+ (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG)| -+#else - (1<<TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG)| -+#endif - (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG)| - (1<<TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG); - |