summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0001-mm-page_alloc-Split-drain_local_pages.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0001-mm-page_alloc-Split-drain_local_pages.patch')
-rw-r--r--debian/patches-rt/0001-mm-page_alloc-Split-drain_local_pages.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/debian/patches-rt/0001-mm-page_alloc-Split-drain_local_pages.patch b/debian/patches-rt/0001-mm-page_alloc-Split-drain_local_pages.patch
new file mode 100644
index 000000000..b2cab4d08
--- /dev/null
+++ b/debian/patches-rt/0001-mm-page_alloc-Split-drain_local_pages.patch
@@ -0,0 +1,57 @@
+From: Anna-Maria Gleixner <anna-maria@linutronix.de>
+Date: Thu, 18 Apr 2019 11:09:04 +0200
+Subject: [PATCH 1/4] mm/page_alloc: Split drain_local_pages()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patches-5.4.3-rt1.tar.xz
+
+Splitting the functionality of drain_local_pages() into a separate
+function. This is a preparatory work for introducing the static key
+dependend locking mechanism.
+
+No functional change.
+
+Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/gfp.h | 1 +
+ mm/page_alloc.c | 13 +++++++++----
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+--- a/include/linux/gfp.h
++++ b/include/linux/gfp.h
+@@ -580,6 +580,7 @@ extern void page_frag_free(void *addr);
+ void page_alloc_init(void);
+ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp);
+ void drain_all_pages(struct zone *zone);
++void drain_cpu_pages(unsigned int cpu, struct zone *zone);
+ void drain_local_pages(struct zone *zone);
+
+ void page_alloc_init_late(void);
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -2894,6 +2894,14 @@ static void drain_pages(unsigned int cpu
+ }
+ }
+
++void drain_cpu_pages(unsigned int cpu, struct zone *zone)
++{
++ if (zone)
++ drain_pages_zone(cpu, zone);
++ else
++ drain_pages(cpu);
++}
++
+ /*
+ * Spill all of this CPU's per-cpu pages back into the buddy allocator.
+ *
+@@ -2904,10 +2912,7 @@ void drain_local_pages(struct zone *zone
+ {
+ int cpu = smp_processor_id();
+
+- if (zone)
+- drain_pages_zone(cpu, zone);
+- else
+- drain_pages(cpu);
++ drain_cpu_pages(cpu, zone);
+ }
+
+ static void drain_local_pages_wq(struct work_struct *work)