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 | |
| 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.
| -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; |
