From: Peter Zijlstra <peterz@infradead.org>
To: fabio de francesco <fabio@metanix.org>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: Re: [process scheduler] Possible bug in context_swich()?
Date: Wed, 08 Sep 2010 17:54:18 +0200 [thread overview]
Message-ID: <1283961258.23762.33.camel@laptop> (raw)
In-Reply-To: <201009081728.18227.fabio@metanix.org>
On Wed, 2010-09-08 at 17:28 +0200, fabio de francesco wrote:
> In context_switch() (in linux/kernel/sched.c), starting with release 2.6.33,
> two "unlikely" macro have been changed to "likely". I think the previous
> logic was right while the latter is wrong.
>
> In case I am missing something I, please, ask someone to explain the above
> mentioned inversion of logic through releases.
It helps if you CC people, LKML alone is a bit of a gamble.
git blame kernel/sched.c, will tell you that the change you refer to
comes from:
commit 710390d90f143a9ebb87a475215140f426792efd
Author: Tim Blechmann <tim@klingt.org>
Date: Tue Nov 24 11:55:27 2009 +0100
sched: Optimize branch hint in context_switch()
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 <tim@klingt.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <4B0BBB9F.6080304@klingt.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/kernel/sched.c b/kernel/sched.c
index 93474a7..010d5e1 100644
--- 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 (unlikely(!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 (unlikely(!prev->mm)) {
+ if (likely(!prev->mm)) {
prev->active_mm = NULL;
rq->prev_mm = oldmm;
}
next prev parent reply other threads:[~2010-09-08 15:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-08 15:28 [process scheduler] Possible bug in context_swich()? fabio de francesco
2010-09-08 15:48 ` Will Newton
2010-09-08 15:54 ` Peter Zijlstra [this message]
2010-09-09 2:32 ` Mike Galbraith
2010-09-09 10:39 ` Peter Zijlstra
2010-09-09 11:12 ` Tim Blechmann
2010-09-09 11:25 ` Heiko Carstens
2010-09-09 11:25 ` fabio de francesco
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1283961258.23762.33.camel@laptop \
--to=peterz@infradead.org \
--cc=fabio@metanix.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.