From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Pascal Chapperon <pascal.chapperon@wanadoo.fr>
Cc: Josh Boyer <jwboyer@redhat.com>,
linux-kernel@vger.kernel.org, kernel-team@fedoraproject.org
Subject: Re: RCU related performance regression in 3.3
Date: Tue, 10 Apr 2012 09:07:06 -0700 [thread overview]
Message-ID: <20120410160706.GF2428@linux.vnet.ibm.com> (raw)
In-Reply-To: <588810225.17969.1333703883646.JavaMail.www@wwinf1g24>
On Fri, Apr 06, 2012 at 11:18:03AM +0200, Pascal Chapperon wrote:
> > Message du 05/04/12 16:40
> > De : "Paul E. McKenney"
> > A : "Pascal CHAPPERON"
> > Copie à : "Josh Boyer" , linux-kernel@vger.kernel.org, kernel-team@fedoraproject.org
> > Objet : Re: RCU related performance regression in 3.3
> >
> > On Thu, Apr 05, 2012 at 04:15:33PM +0200, Pascal CHAPPERON wrote:
> > > Hello,
> > >
> > > I didn't notice any significant slowdown while the system is up and running.
> A full kernel compilation (make -j 16) takes 14mn with both 3.2.10 and 3.3.0.
OK, good.
> > OK, so the natural approach is to disable CONFIG_RCU_FAST_NO_HZ at
> > boot time. Unfortunately, you appear to need it to remain disabled
> > through at least filesystem mounting, which if I understand correctly
> > happens long after system_state gets set to SYSTEM_RUNNING.
> >
> In fact, I need it to remain disable until all the systemd units are completed.
> Some units, such as NetworkManager can take longer time to complete with
> RCU_FAST_NO_HZ enabled.
> And i need it to be disabled at shutdown, as umounting cgroups, sysfs, etc.
> plus old-root mounting can take one plain second for each umounting.
OK...
> > If RCU has some way to find out when init is complete, I can easily
> > make it so that CONFIG_RCU_FAST_NO_HZ optimizes for speed during boot
> > and energy efficiency during runtime.
> >
> I said that I didn't noticed significant slowdown during runtime, but my
> laptop usage is basic. Some specific tasks similar to systemd may
> perhaps be impacted by this feature.
> I can test a task/program that could stress RCU_FAST_NO_HZ if any ?
One thing to try first -- could you please check boot/shutdown slowdown
with the patch below?
But yes, there are things like modifying netfilter rules and updating
security configuration that might be affected.
> > One thing I could easily do would be to provide a sysfs parameter or
> > some such that allows the boot process to enable energy-efficiency
> > mode at runtime. I would much prefer to make this automatic, though.
> >
> So the feature is disabled until you trigger a sysfs parameter, and can be
> disabled before shutdown ? It would be fair, at least for hardware like my
> own.
That is the thought, though again I would really really prefer that this
be automated.
> > Other thoughts?
> >
> Do you think that the culprit is a buggy hardware in my laptop, or the
> number of cpu/threads ?
Maybe just more filesystems to mount?
> > Thanx, Paul
> >
>
> Resent in plain text because rejected. Sorry, i forgot the rules.
No problem! Please see below for the patch.
Thanx, Paul
------------------------------------------------------------------------
rcu: Decrease RCU_FAST_NO_HZ timer interval
Use of RCU_FAST_NO_HZ reportedly significantly slowed boot time in
configurations involving lots of filesystem mounts. This commit attempts
to work around this by decreasing the RCU_FAST_NO_HZ timer interval
from 6 jiffies down to 3 jiffies.
Reported-by: Pascal Chapperon <pascal.chapperon@wanadoo.fr>
Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
index c023464..980a4bb 100644
--- a/kernel/rcutree_plugin.h
+++ b/kernel/rcutree_plugin.h
@@ -1975,7 +1975,7 @@ static void rcu_prepare_for_idle(int cpu)
*/
#define RCU_IDLE_FLUSHES 5 /* Number of dyntick-idle tries. */
#define RCU_IDLE_OPT_FLUSHES 3 /* Optional dyntick-idle tries. */
-#define RCU_IDLE_GP_DELAY 6 /* Roughly one grace period. */
+#define RCU_IDLE_GP_DELAY 3 /* Roughly one grace period. */
#define RCU_IDLE_LAZY_GP_DELAY (6 * HZ) /* Roughly six seconds. */
static DEFINE_PER_CPU(int, rcu_dyntick_drain);
next prev parent reply other threads:[~2012-04-10 16:18 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-04 15:27 RCU related performance regression in 3.3 Josh Boyer
2012-04-04 21:36 ` Paul E. McKenney
2012-04-05 12:37 ` Josh Boyer
2012-04-05 14:00 ` Paul E. McKenney
2012-04-05 14:15 ` Pascal CHAPPERON
2012-04-05 14:39 ` Paul E. McKenney
2012-04-06 9:18 ` Pascal Chapperon
2012-04-10 16:07 ` Paul E. McKenney [this message]
2012-04-11 15:06 ` Pascal
2012-04-12 18:04 ` Paul E. McKenney
2012-04-16 21:02 ` Paul E. McKenney
2012-04-18 9:37 ` Pascal Chapperon
2012-04-18 14:01 ` Paul E. McKenney
2012-04-18 15:00 ` Pascal Chapperon
2012-04-18 15:23 ` Paul E. McKenney
2012-04-20 14:45 ` Pascal Chapperon
-- strict thread matches above, loose matches on Subject: below --
2012-04-27 12:15 Pascal Chapperon
2012-04-28 3:42 ` Paul E. McKenney
2012-05-01 0:02 ` Paul E. McKenney
2012-05-01 8:55 ` Pascal Chapperon
2012-05-01 15:45 ` Paul E. McKenney
2012-05-04 14:42 ` Pascal Chapperon
2012-05-04 15:04 ` Paul E. McKenney
2012-05-04 21:41 ` Pascal Chapperon
2012-05-04 23:14 ` Paul E. McKenney
2012-05-10 8:40 ` Pascal Chapperon
2012-05-14 22:32 ` Paul E. McKenney
2012-05-18 11:01 ` Pascal Chapperon
2012-05-18 12:14 ` Paul E. McKenney
2012-05-18 14:48 ` Pascal Chapperon
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=20120410160706.GF2428@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=jwboyer@redhat.com \
--cc=kernel-team@fedoraproject.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pascal.chapperon@wanadoo.fr \
/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.