diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-01-30 11:55:17 -0500 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-01-30 11:55:17 -0500 |
commit | eaa2e9aea0bbdd3d4594fb937ceacc81e30772b0 (patch) | |
tree | ef25098d5db6842523b3ed803aee53122bc169c3 | |
parent | ad881d6ffdc698af8dfd7967201652cb1c818533 (diff) | |
download | rt-patches-eaa2e9aea0bbdd3d4594fb937ceacc81e30772b0.tar.gz |
rm sched-Queue-a-deboosted-task-to-the-head-of-the-RT-p.patch - 60db48cacb
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | sched-Queue-a-deboosted-task-to-the-head-of-the-RT-p.patch | 47 | ||||
-rw-r--r-- | series | 1 |
2 files changed, 0 insertions, 48 deletions
diff --git a/sched-Queue-a-deboosted-task-to-the-head-of-the-RT-p.patch b/sched-Queue-a-deboosted-task-to-the-head-of-the-RT-p.patch deleted file mode 100644 index bfe8786..0000000 --- a/sched-Queue-a-deboosted-task-to-the-head-of-the-RT-p.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 9fc994dc21fa89a1627aa552013e17782832ceff Mon Sep 17 00:00:00 2001 -From: Thomas Gleixner <tglx@linutronix.de> -Date: Tue, 19 Jan 2010 16:53:49 +0100 -Subject: [PATCH] sched: Queue a deboosted task to the head of the RT priority queue - -commit 68dd8120041d9120aa8734894c940a25eacf5c9c in tip. - -rtmutex_set_prio() is used to implement priority inheritance for -futexes. When a task is deboosted it gets enqueued at the tail of its RT -priority list. This is violating the POSIX scheduling semantics: - -rt priority list X contains two runnable tasks A and B - - task A runs with priority X and holds mutex M - task C preempts A and is blocked on mutex M - -> task A is boosted to priority of task C (Y) - task A unlocks the mutex M and deboosts itself - -> A is dequeued from rt priority list Y - -> A is enqueued to the tail of rt priority list X - task C schedules away - task B runs - -This is wrong as task A did not schedule away and therefor violates -the POSIX scheduling semantics. - -Enqueue the task to the head of the priority list instead. - -Reported-by: Mathias Weber <mathias.weber.mw1@roche.com> -Reported-by: Carsten Emde <cbe@osadl.org> -Signed-off-by: Thomas Gleixner <tglx@linutronix.de> - -diff --git a/kernel/sched.c b/kernel/sched.c -index 89829aa..61d3280 100644 ---- a/kernel/sched.c -+++ b/kernel/sched.c -@@ -6378,7 +6378,7 @@ void task_setprio(struct task_struct *p, int prio) - if (running) - p->sched_class->set_curr_task(rq); - if (on_rq) { -- enqueue_task(rq, p, 0, false); -+ enqueue_task(rq, p, 0, oldprio < prio); - - check_class_changed(rq, p, prev_class, oldprio, running); - } --- -1.7.1.1 - @@ -349,7 +349,6 @@ capabilities-Use-rcu-to-protect-task-lookup-in-sys_c.patch fs-Add-missing-rcu-protection-for-__task_cred-in-sys.patch security-Fix-invalid-rcu-assumptions-in-comments.patch oom-Add-missing-rcu-protection-of-__task_cred-in-dum.patch -sched-Queue-a-deboosted-task-to-the-head-of-the-RT-p.patch sched-Extend-activate_task-to-allow-queueing-to-the-.patch sched-Hack-to-make-prio-ceiling-posix-compliant.patch sched-Run-task-on-same-cpu-if-idle-and-allowed.patch |