projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
36ace27
)
sched: Optimize branch hint in context_switch()
author
Tim Blechmann
<
[email protected]
>
Tue, 24 Nov 2009 10:55:27 +0000
(11:55 +0100)
committer
Ingo Molnar
<
[email protected]
>
Tue, 24 Nov 2009 11:18:42 +0000
(12:18 +0100)
Branch hint profiling on my nehalem machine showed over 90%
incorrect branch hints:
10420275
170645395
94 context_switch sched.c
3043
10408421
171098521
94 context_switch sched.c
3050
Signed-off-by: Tim Blechmann <
[email protected]
>
Cc: Peter Zijlstra <
[email protected]
>
Cc: Mike Galbraith <
[email protected]
>
Cc: Paul Mackerras <
[email protected]
>
Cc: Arnaldo Carvalho de Melo <
[email protected]
>
Cc: Frederic Weisbecker <
[email protected]
>
LKML-Reference: <
4B0BBB9F
.
6080304
@klingt.org>
Signed-off-by: Ingo Molnar <
[email protected]
>
kernel/sched.c
patch
|
blob
|
history
diff --git
a/kernel/sched.c
b/kernel/sched.c
index 93474a7935ae482aaa4fdd2d99f37a2830b00fe1..010d5e16b4c5efe56976d01c1190f2deb25f5f3a 100644
(file)
--- a/
kernel/sched.c
+++ b/
kernel/sched.c
@@
-2829,14
+2829,14
@@
context_switch(struct rq *rq, struct task_struct *prev,
*/
arch_start_context_switch(prev);
- if (
un
likely(!mm)) {
+ if (likely(!mm)) {
next->active_mm = oldmm;
atomic_inc(&oldmm->mm_count);
enter_lazy_tlb(oldmm, next);
} else
switch_mm(oldmm, mm, next);
- if (
un
likely(!prev->mm)) {
+ if (likely(!prev->mm)) {
prev->active_mm = NULL;
rq->prev_mm = oldmm;
}