diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-07-26 11:20:42 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-07-26 11:20:42 -0400 |
commit | b8a393ed76d27e7b5424caa2c52d92add7663d6f (patch) | |
tree | 94e8a1d69ab2a9cb9cee607a817b12c9f39db570 | |
parent | 16b809c2bbb43062362e13cfdff54135805dd469 (diff) |
P-FP: Don't double-account overheads under DPCP
Don't measure LOCK/UNLOCK while the scheduler is invoked.
-rw-r--r-- | litmus/sched_pfp.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/litmus/sched_pfp.c b/litmus/sched_pfp.c index 4b14a3eedb83..4d8759209a56 100644 --- a/litmus/sched_pfp.c +++ b/litmus/sched_pfp.c | |||
@@ -1223,6 +1223,11 @@ static void pfp_migrate_to(int target_cpu) | |||
1223 | 1223 | ||
1224 | raw_spin_unlock(&from->slock); | 1224 | raw_spin_unlock(&from->slock); |
1225 | 1225 | ||
1226 | /* Don't trace scheduler costs as part of | ||
1227 | * locking overhead. Scheduling costs are accounted for | ||
1228 | * explicitly. */ | ||
1229 | TS_LOCK_SUSPEND; | ||
1230 | |||
1226 | local_irq_enable(); | 1231 | local_irq_enable(); |
1227 | preempt_enable_no_resched(); | 1232 | preempt_enable_no_resched(); |
1228 | 1233 | ||
@@ -1232,6 +1237,9 @@ static void pfp_migrate_to(int target_cpu) | |||
1232 | /* we are now on the target processor */ | 1237 | /* we are now on the target processor */ |
1233 | preempt_disable(); | 1238 | preempt_disable(); |
1234 | 1239 | ||
1240 | /* start recording costs again */ | ||
1241 | TS_LOCK_RESUME; | ||
1242 | |||
1235 | BUG_ON(smp_processor_id() != target_cpu); | 1243 | BUG_ON(smp_processor_id() != target_cpu); |
1236 | } | 1244 | } |
1237 | 1245 | ||