diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2011-08-24 11:32:21 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2011-08-27 10:29:47 -0400 |
commit | fb8d6602af1cbc09115544056b872b976c6349c3 (patch) | |
tree | 8c25e307650001a09a1616fb843b96e2b0d688b7 /kernel | |
parent | ea62a6fe914f7463f89422dcb1812eb071cbd495 (diff) |
Prevent Linux to send IPI and queue tasks on remote CPUs.wip-merge-v3.0
Whether to send IPIs and enqueue tasks on remote runqueues is
plugin-specific. The recent ttwu_queue() mechanism (by calling
ttwu_queue_remote()) interferes with Litmus plugin decisions.
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/sched.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 935f8e8e6160..baaca61bc3a3 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -2661,7 +2661,12 @@ static void ttwu_queue(struct task_struct *p, int cpu) | |||
2661 | struct rq *rq = cpu_rq(cpu); | 2661 | struct rq *rq = cpu_rq(cpu); |
2662 | 2662 | ||
2663 | #if defined(CONFIG_SMP) | 2663 | #if defined(CONFIG_SMP) |
2664 | if (sched_feat(TTWU_QUEUE) && cpu != smp_processor_id()) { | 2664 | /* |
2665 | * LITMUS^RT: whether to send an IPI to the remote CPU | ||
2666 | * is plugin specific. | ||
2667 | */ | ||
2668 | if (!is_realtime(p) && | ||
2669 | sched_feat(TTWU_QUEUE) && cpu != smp_processor_id()) { | ||
2665 | sched_clock_cpu(cpu); /* sync clocks x-cpu */ | 2670 | sched_clock_cpu(cpu); /* sync clocks x-cpu */ |
2666 | ttwu_queue_remote(p, cpu); | 2671 | ttwu_queue_remote(p, cpu); |
2667 | return; | 2672 | return; |