diff options
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.patch | 57 |
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) |