diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2017-10-05 16:28:23 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2017-10-05 16:28:23 -0400 |
commit | 03c103cf6bb2f3a18ca93c099f742c7ee4212dc2 (patch) | |
tree | 32725a046f4dc9d5a6f73e42f2ed3c26d9d0f5d9 | |
parent | 1de87d43aebc387ecfe2ab784db29cd6e08ec87b (diff) | |
download | 4.12-rt-patches-03c103cf6bb2f3a18ca93c099f742c7ee4212dc2.tar.gz |
refresh sched-mmdrop-delayed.patch
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | patches/sched-mmdrop-delayed.patch | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/patches/sched-mmdrop-delayed.patch b/patches/sched-mmdrop-delayed.patch index 44516f29292d46..b77ce1ea8bd2a3 100644 --- a/patches/sched-mmdrop-delayed.patch +++ b/patches/sched-mmdrop-delayed.patch @@ -1,4 +1,4 @@ -From 4a7dc55ac5d4cb0ddf2192703b291c442dd13dd9 Mon Sep 17 00:00:00 2001 +From 9efd514841f5b8e11f3aa6ab61629943dbeb22ed Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 6 Jun 2011 12:20:33 +0200 Subject: [PATCH] sched: Move mmdrop to RCU on RT @@ -9,7 +9,7 @@ we want to do in task switch and oder atomic contexts. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h -index f60f45fe226f..c66abbd21403 100644 +index 45cdb27791a3..5450c37c0628 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -11,6 +11,7 @@ @@ -20,7 +20,7 @@ index f60f45fe226f..c66abbd21403 100644 #include <linux/page-flags-layout.h> #include <linux/workqueue.h> -@@ -491,6 +492,9 @@ struct mm_struct { +@@ -496,6 +497,9 @@ struct mm_struct { bool tlb_flush_pending; #endif struct uprobes_state uprobes_state; @@ -31,7 +31,7 @@ index f60f45fe226f..c66abbd21403 100644 atomic_long_t hugetlb_usage; #endif diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h -index 830953ebb391..b3b3198ab1dc 100644 +index 2b24a6974847..0ec83019dfdf 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h @@ -42,6 +42,17 @@ static inline void mmdrop(struct mm_struct *mm) @@ -53,10 +53,10 @@ index 830953ebb391..b3b3198ab1dc 100644 { struct mm_struct *mm = container_of(work, struct mm_struct, async_put_work); diff --git a/kernel/fork.c b/kernel/fork.c -index ea7a8f9557e3..99de80308d12 100644 +index 45ae20f4b46a..7a2bd659f9b9 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -885,6 +885,19 @@ void __mmdrop(struct mm_struct *mm) +@@ -909,6 +909,19 @@ void __mmdrop(struct mm_struct *mm) } EXPORT_SYMBOL_GPL(__mmdrop); @@ -77,10 +77,10 @@ index ea7a8f9557e3..99de80308d12 100644 { VM_BUG_ON(atomic_read(&mm->mm_users)); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index c9c52e3deeb7..c99bbe08ee1b 100644 +index 4f25dfd4b15b..7b5ea59aed4b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -2784,8 +2784,12 @@ static struct rq *finish_task_switch(struct task_struct *prev) +@@ -2785,8 +2785,12 @@ static struct rq *finish_task_switch(struct task_struct *prev) finish_arch_post_lock_switch(); fire_sched_in_preempt_notifiers(current); @@ -94,7 +94,7 @@ index c9c52e3deeb7..c99bbe08ee1b 100644 if (unlikely(prev_state == TASK_DEAD)) { if (prev->sched_class->task_dead) prev->sched_class->task_dead(prev); -@@ -5611,6 +5615,8 @@ void sched_setnuma(struct task_struct *p, int nid) +@@ -5641,6 +5645,8 @@ void sched_setnuma(struct task_struct *p, int nid) #endif /* CONFIG_NUMA_BALANCING */ #ifdef CONFIG_HOTPLUG_CPU @@ -103,8 +103,8 @@ index c9c52e3deeb7..c99bbe08ee1b 100644 /* * Ensure that the idle task is using init_mm right before its CPU goes * offline. -@@ -5625,7 +5631,12 @@ void idle_task_exit(void) - switch_mm_irqs_off(mm, &init_mm, current); +@@ -5655,7 +5661,12 @@ void idle_task_exit(void) + switch_mm(mm, &init_mm, current); finish_arch_post_lock_switch(); } - mmdrop(mm); @@ -117,7 +117,7 @@ index c9c52e3deeb7..c99bbe08ee1b 100644 } /* -@@ -5952,6 +5963,10 @@ int sched_cpu_dying(unsigned int cpu) +@@ -5980,6 +5991,10 @@ int sched_cpu_dying(unsigned int cpu) update_max_interval(); nohz_balance_exit_idle(cpu); hrtick_clear(rq); |