summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2017-10-05 16:28:23 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2017-10-05 16:28:23 -0400
commit03c103cf6bb2f3a18ca93c099f742c7ee4212dc2 (patch)
tree32725a046f4dc9d5a6f73e42f2ed3c26d9d0f5d9
parent1de87d43aebc387ecfe2ab784db29cd6e08ec87b (diff)
download4.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.patch24
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);