From 9ba6aa51b390e7f1ec301bbf2f064aa9937f6e7f Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Fri, 2 May 2008 11:14:12 -0400 Subject: LITMUS: don't let real-time tasks migrate by themselves A proper real-time migration works as follows: 1) transition to best-effort task 2) migrate to target CPU 3) update real-time parameters 4) transition to real-time task --- kernel/sched.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c index 00097dea89..7268034c88 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4536,10 +4536,11 @@ long sched_setaffinity(pid_t pid, cpumask_t new_mask) read_lock(&tasklist_lock); p = find_process_by_pid(pid); - if (!p) { + if (!p || is_realtime(p)) { + /* LITMUS tasks don't get to do this, transition to BE first */ read_unlock(&tasklist_lock); mutex_unlock(&sched_hotcpu_mutex); - return -ESRCH; + return p ? -EPERM : -ESRCH; } /* -- cgit v1.2.2