From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Darren Hart <darren@dvhart.com>
Cc: "Nick Bowler" <nbowler@elliptictech.com>,
LKML <linux-kernel@vger.kernel.org>,
linux-rt-users@vger.kernel.org, "Ingo Molnar" <mingo@elte.hu>,
laijs@cn.fujitsu.com, dipankar@in.ibm.com,
"Andrew Morton" <akpm@linux-foundation.org>,
mathieu.desnoyers@efficios.com,
"Josh Triplett" <josh@joshtriplett.org>,
"Nivedita Singhvi" <niv@us.ibm.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Peter Zijlstra" <peterz@infradead.org>,
"Steven Rostedt" <rostedt@goodmis.org>,
Valdis.Kletnieks@vt.edu, "David Howells" <dhowells@redhat.com>,
edumazet@google.com, "Frédéric Weisbecker" <fweisbec@gmail.com>,
sbw@mit.edu, patches@linaro.org
Subject: Re: Does anyone use CONFIG_TINY_PREEMPT_RCU?
Date: Tue, 13 Nov 2012 15:04:47 -0800 [thread overview]
Message-ID: <20121113230446.GJ2489@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAGChsmOBB1yFNP5xSa06v+CYn0A=AjcZTyAzL8npWRdNYYLBZA@mail.gmail.com>
On Tue, Nov 13, 2012 at 02:33:48PM -0800, Darren Hart wrote:
> On Tue, Nov 13, 2012 at 2:25 PM, Paul E. McKenney <
> paulmck@linux.vnet.ibm.com> wrote:
>
> > On Tue, Nov 13, 2012 at 04:47:20PM -0500, Nick Bowler wrote:
> > > On 2012-11-13 13:19 -0800, Paul E. McKenney wrote:
> > > > On Tue, Nov 13, 2012 at 12:56:54PM -0500, Nick Bowler wrote:
> > > > > On 2012-11-13 09:08 -0800, Paul E. McKenney wrote:
> > > > > > Suppose that TREE_PREEMPT_RCU was available for !SMP && PREEMPT
> > builds.
> > > > > > Would that work for you?
> > > > >
> > > > > To be honest I don't really know what the difference is, other than
> > what
> > > > > the help text says, which is:
> > > > >
> > > > > [TINY_PREEMPT_RCU] greatly reduces the memory footprint of RCU.
> > > > >
> > > > > "Greatly reduced memory footprint" sounds pretty useful...
> > > >
> > > > OK, so from your viewpoint, the only possible benefit is smaller
> > > > memory?
> > >
> > > Well, I have no idea. If I was given the choice between TREE_PREEMPT_RCU
> > > and TINY_PREEMPT_RCU, absent any information not in the description of
> > > these options, I would choose TINY. The description suggests that the
> > > memory savings come at the expense of SMP support, which sounds like a
> > > great tradeoff to make for a UP system.
> > >
> > > > How much memory does your device have, if I may ask?
> > >
> > > It's a (pretty old!) desktop. I recently had to upgrade it to two
> > > gigabytes due to unbearable thrashing with only one...
> >
> > If you have two gigabytes (or even one gigabyte), you won't notice the
> > few kilobytes of difference between TINY_PREEMPT_RCU and TREE_PREEMPT_RCU.
> >
> >
> In that case I don't have any reason to be concerned about it. It seems
> then as though "tiny" is meant to reduce memory usage on systems with a
> great deal of memory where the structures add up to consume significant
> amounts of memory?
The "tiny" is for extremely small systems. The difference in memory
consumption is otherwise not all that big a deal.
CONFIG_TINY_PREEMPT_RCU:
text data bss dec hex filename
1079 173 0 1252 4e4 /tmp/b/kernel/rcupdate.o
3223 105 4 3332 d04 /tmp/b/kernel/rcutiny.o
CONFIG_TREE_PREEMPT_RCU, NR_CPUS=2:
text data bss dec hex filename
1376 197 0 1573 625 /tmp/b/kernel/rcupdate.o
16545 2030 12 18587 489b /tmp/b/kernel/rcutree.o
So you get about 15Kbytes by using CONFIG_TINY_PREEMPT_RCU instead of
CONFIG_TREE_PREEMPT_RCU. Actually you get a bit less than that, because
CONFIG_TREE_PREEMPT_RCU's data would be a bit smaller for NR_CPUS=1.
But people who -really- care about memory measured in kilobytes
usually go all the way to CONFIG_TINY_RCU:
CONFIG_TINY_RCU:
text data bss dec hex filename
858 173 0 1031 407 /tmp/b/kernel/rcupdate.o
1788 47 0 1835 72b /tmp/b/kernel/rcutiny.o
This is about 2.5K better than CONFIG_TINY_PREEMPT_RCU. Also, !PREEMPT
reduces the size of the rest of the kernel as well.
Hence my belief that CONFIG_TINY_PREEMPT_RCU isn't really helping much
here.
Thanx, Paul
next prev parent reply other threads:[~2012-11-13 23:04 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-13 0:49 Does anyone use CONFIG_TINY_PREEMPT_RCU? Paul E. McKenney
2012-11-13 1:12 ` Frederic Weisbecker
2012-11-13 1:17 ` Josh Triplett
2012-11-13 1:34 ` Frederic Weisbecker
2012-11-13 1:42 ` Paul E. McKenney
2012-11-13 1:32 ` Paul E. McKenney
2012-11-13 14:46 ` Nick Bowler
2012-11-13 17:08 ` Paul E. McKenney
2012-11-13 17:56 ` Nick Bowler
2012-11-13 21:19 ` Paul E. McKenney
2012-11-13 21:47 ` Nick Bowler
2012-11-13 22:25 ` Paul E. McKenney
2012-11-13 22:40 ` Nick Bowler
2012-11-14 0:05 ` Paul E. McKenney
[not found] ` <CAGChsmOBB1yFNP5xSa06v+CYn0A=AjcZTyAzL8npWRdNYYLBZA@mail.gmail.com>
2012-11-13 23:04 ` Paul E. McKenney [this message]
2012-11-13 20:22 ` Tim Sander
2012-11-13 21:20 ` Paul E. McKenney
2012-11-13 23:32 ` Tim Sander
2012-11-14 0:06 ` Paul E. McKenney
2012-11-14 0:36 ` Josh Triplett
2012-11-14 1:07 ` Paul E. McKenney
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=20121113230446.GJ2489@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=Valdis.Kletnieks@vt.edu \
--cc=akpm@linux-foundation.org \
--cc=darren@dvhart.com \
--cc=dhowells@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=edumazet@google.com \
--cc=fweisbec@gmail.com \
--cc=josh@joshtriplett.org \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@elte.hu \
--cc=nbowler@elliptictech.com \
--cc=niv@us.ibm.com \
--cc=patches@linaro.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sbw@mit.edu \
--cc=tglx@linutronix.de \
/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.