diff options
Diffstat (limited to 'debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch')
-rw-r--r-- | debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch index c62fd4658..0035016fb 100644 --- a/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch +++ b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch @@ -1,9 +1,8 @@ -From 77ff019039696fc4bd8962110c689eb3520386b1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 21 Jun 2018 17:29:19 +0200 -Subject: [PATCH 075/347] mm/SLUB: delay giving back empty slubs to IRQ enabled +Subject: [PATCH 075/342] mm/SLUB: delay giving back empty slubs to IRQ enabled regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ea46cd4066413ae217e7307020fa0e4a4cbc223 __free_slab() is invoked with disabled interrupts which increases the irq-off time while __free_pages() is doing the work. @@ -18,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 1 file changed, 69 insertions(+), 5 deletions(-) diff --git a/mm/slub.c b/mm/slub.c -index 0e4670add1e9..a5a086ed4493 100644 +index ef6fc4df3ed5..e9abe4aa5801 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1350,6 +1350,12 @@ static bool freelist_corrupted(struct kmem_cache *s, struct page *page, @@ -64,7 +63,7 @@ index 0e4670add1e9..a5a086ed4493 100644 } else __free_slab(s, page); } -@@ -2256,14 +2278,21 @@ static void put_cpu_partial(struct kmem_cache *s, struct page *page, int drain) +@@ -2257,14 +2279,21 @@ static void put_cpu_partial(struct kmem_cache *s, struct page *page, int drain) pobjects = oldpage->pobjects; pages = oldpage->pages; if (drain && pobjects > s->cpu_partial) { @@ -86,7 +85,7 @@ index 0e4670add1e9..a5a086ed4493 100644 oldpage = NULL; pobjects = 0; pages = 0; -@@ -2333,7 +2362,22 @@ static bool has_cpu_slab(int cpu, void *info) +@@ -2332,7 +2361,22 @@ static bool has_cpu_slab(int cpu, void *info) static void flush_all(struct kmem_cache *s) { @@ -109,7 +108,7 @@ index 0e4670add1e9..a5a086ed4493 100644 } /* -@@ -2531,8 +2575,10 @@ static inline void *get_freelist(struct kmem_cache *s, struct page *page) +@@ -2530,8 +2574,10 @@ static inline void *get_freelist(struct kmem_cache *s, struct page *page) * already disabled (which is the case for bulk allocation). */ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, @@ -218,6 +217,3 @@ index 0e4670add1e9..a5a086ed4493 100644 if (debug_guardpage_minorder()) slub_max_order = 0; --- -2.36.1 - |