summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2011-01-29 17:15:42 -0500
committerPaul Gortmaker <paul.gortmaker@windriver.com>2011-01-29 17:15:42 -0500
commit1b126ef0737daf5fe9a0a708357c352b8b0e056e (patch)
treed76a147f27305923d22a7d297745f2e1d14c0ef5
parente6d0a09b1f5f4ce304238ad34302ca20a2e3a7ba (diff)
downloadrt-patches-1b126ef0737daf5fe9a0a708357c352b8b0e056e.tar.gz
trivial refresh
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--sched-mmdrop-needs-to-be-delayed-on-rt.patch26
1 files changed, 13 insertions, 13 deletions
diff --git a/sched-mmdrop-needs-to-be-delayed-on-rt.patch b/sched-mmdrop-needs-to-be-delayed-on-rt.patch
index 7247499..bf6b222 100644
--- a/sched-mmdrop-needs-to-be-delayed-on-rt.patch
+++ b/sched-mmdrop-needs-to-be-delayed-on-rt.patch
@@ -1,4 +1,4 @@
-From 5035536761d8462d69dc7aed51fb54e5d8a875c5 Mon Sep 17 00:00:00 2001
+From 7dddfdccc04483b47fcd03e393e4717f7170269e Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:05 -0500
Subject: [PATCH] sched: mmdrop needs to be delayed on -rt
@@ -49,7 +49,7 @@ index c66e373..f342f61 100644
extern void mmput(struct mm_struct *);
/* Grab a reference to a task's mm, if it is not already going away */
diff --git a/kernel/fork.c b/kernel/fork.c
-index 334ebe7..5e880bd 100644
+index c12e53a..c49f839 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -38,6 +38,7 @@
@@ -69,9 +69,9 @@ index 334ebe7..5e880bd 100644
#include <asm/pgtable.h>
#include <asm/pgalloc.h>
-@@ -91,6 +94,14 @@ DEFINE_RWLOCK(tasklist_lock); /* outer */
- __cacheline_aligned DEFINE_RWLOCK(tasklist_lock); /* outer */
+@@ -92,6 +95,14 @@ __cacheline_aligned DEFINE_RWLOCK(tasklist_lock); /* outer */
#endif
+ EXPORT_SYMBOL_GPL(tasklist_lock);
+/*
+ * Delayed mmdrop. In the PREEMPT_RT case we
@@ -84,7 +84,7 @@ index 334ebe7..5e880bd 100644
int nr_processes(void)
{
int cpu;
-@@ -184,6 +195,8 @@ void __put_task_struct(struct task_struct *tsk)
+@@ -185,6 +196,8 @@ void __put_task_struct(struct task_struct *tsk)
void __init fork_init(unsigned long mempages)
{
@@ -93,7 +93,7 @@ index 334ebe7..5e880bd 100644
#ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
#ifndef ARCH_MIN_TASKALIGN
#define ARCH_MIN_TASKALIGN L1_CACHE_BYTES
-@@ -214,6 +227,9 @@ void __init fork_init(unsigned long mempages)
+@@ -215,6 +228,9 @@ void __init fork_init(unsigned long mempages)
init_task.signal->rlim[RLIMIT_NPROC].rlim_max = max_threads/2;
init_task.signal->rlim[RLIMIT_SIGPENDING] =
init_task.signal->rlim[RLIMIT_NPROC];
@@ -103,7 +103,7 @@ index 334ebe7..5e880bd 100644
}
int __attribute__((weak)) arch_dup_task_struct(struct task_struct *dst,
-@@ -299,6 +315,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -300,6 +316,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
mm->locked_vm = 0;
mm->mmap = NULL;
mm->mmap_cache = NULL;
@@ -111,7 +111,7 @@ index 334ebe7..5e880bd 100644
mm->free_area_cache = oldmm->mmap_base;
mm->cached_hole_size = ~0UL;
mm->map_count = 0;
-@@ -1301,7 +1318,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1302,7 +1319,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
attach_pid(p, PIDTYPE_SID, task_session(current));
list_add_tail(&p->sibling, &p->real_parent->children);
list_add_tail_rcu(&p->tasks, &init_task.tasks);
@@ -121,7 +121,7 @@ index 334ebe7..5e880bd 100644
}
attach_pid(p, PIDTYPE_PID, pid);
nr_threads++;
-@@ -1775,3 +1794,138 @@ int unshare_files(struct files_struct **displaced)
+@@ -1776,3 +1795,138 @@ int unshare_files(struct files_struct **displaced)
task_unlock(task);
return 0;
}
@@ -261,10 +261,10 @@ index 334ebe7..5e880bd 100644
+ return 0;
+}
diff --git a/kernel/sched.c b/kernel/sched.c
-index 9efdbe4..e96ac22 100644
+index 198f08b..cbc617c 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
-@@ -2929,8 +2929,12 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev)
+@@ -2934,8 +2934,12 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev)
finish_lock_switch(rq, prev);
fire_sched_in_preempt_notifiers(current);
@@ -278,7 +278,7 @@ index 9efdbe4..e96ac22 100644
if (unlikely(prev_state == TASK_DEAD)) {
/*
* Remove function-return probe instances associated with this
-@@ -7733,7 +7737,11 @@ void idle_task_exit(void)
+@@ -7738,7 +7742,11 @@ void idle_task_exit(void)
if (mm != &init_mm)
switch_mm(mm, &init_mm, current);
@@ -291,5 +291,5 @@ index 9efdbe4..e96ac22 100644
/* called under rq->lock with disabled interrupts */
--
-1.7.1.1
+1.7.1