linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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


  parent reply	other threads:[~2012-11-13 23:12 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).