From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Martin Schwidefsky <schwidefsky@de.ibm.com>
Subject: lmbench regression due to cond_resched nullification change 26-rc5 vs. 25
Date: Fri, 20 Jun 2008 10:14:43 +0200 [thread overview]
Message-ID: <200806201014.43576.borntraeger@de.ibm.com> (raw)
Hello Linus,
On a 6-way s390 I have seen some interesting regression in 2.6.26-rc5 vs.
2.6.25 for the lmbench benchmark.
For example select file 500:
23 microseconds
32 microseconds
Several lmbench tests show a regression but I only bisected the select test
case so far:
-------------------------<snip---------------------
commit c714a534d85576af21b06be605ca55cb2fb887ee
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon May 12 13:34:13 2008 -0700
Make 'cond_resched()' nullification depend on PREEMPT_BKL
Because it's not correct with a non-preemptable BKL and just causes
PREEMPT kernels to have longer latencies than non-PREEMPT ones (which is
obviously not the point of it at all).
Of course, that config option actually got removed as an option earlier,
so for now this basically disables it entirely, but if BKL preemption is
ever resurrected it will be a meaningful optimization. And in the
meantime, it at least documents the intent of the code, while not doing
the wrong thing.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 5a63f2d..5395a61 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2038,7 +2038,7 @@ static inline int need_resched(void)
* cond_resched_softirq() will enable bhs before scheduling.
*/
extern int _cond_resched(void);
-#ifdef CONFIG_PREEMPT
+#ifdef CONFIG_PREEMPT_BKL
static inline int cond_resched(void)
{
return 0;
-------------------------<snip---------------------
Reverting that patch gives me the 2.6.25 performance.
I think the patch is fine from the correctness point of view (do resched
inside BKL protected zones if its safe) but I dont understand why it has a
large impact on the select microbenchmark. Any ideas? Is it simply the
overhead of _cond_resched?
Christian
next reply other threads:[~2008-06-20 8:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-20 8:14 Christian Borntraeger [this message]
2008-06-20 19:10 ` lmbench regression due to cond_resched nullification change 26-rc5 vs. 25 Linus Torvalds
2008-06-22 19:17 ` Christian Borntraeger
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=200806201014.43576.borntraeger@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=schwidefsky@de.ibm.com \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox