lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 9 Apr 2009 01:55:29 +0900
From:	Paul Mundt <lethal@...ux-sh.org>
To:	Ingo Molnar <mingo@...e.hu>
Cc:	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	linux-kernel@...r.kernel.org, niv@...ibm.com, dvhltc@...ibm.com,
	dhowells@...hat.com, kernel@...tstofly.org, matthew@....cx,
	Matt Mackall <mpm@...enic.com>
Subject: Re: [PATCH] v3 RCU: the bloatwatch edition

On Wed, Apr 08, 2009 at 06:38:38PM +0200, Ingo Molnar wrote:
> 
> * Paul Mundt <lethal@...ux-sh.org> wrote:
> 
> > On Fri, Apr 03, 2009 at 12:36:05AM +0200, Ingo Molnar wrote:
> > > * Paul E. McKenney <paulmck@...ux.vnet.ibm.com> wrote:
> > > > This patch is a version of RCU designed for (!SMP && EMBEDDED) 
> > > > provided as a proof of concept of a small-footprint RCU 
> > > > implementation. In particular, the implementation of 
> > > > synchronize_rcu() is extremely lightweight and high performance.  
> > > > It passes rcutorture testing in each of the four relevant 
> > > > configurations (combinations of NO_HZ and PREEMPT) on x86.  This 
> > > > saves about 900 bytes compared to Classic RCU, and a couple 
> > > > kilobytes compared to Hierarchical RCU:
> > > 
> > > Andrew, what do you think?
> > > 
> > > A worry is yet another RCU variant - we already have 3.
> > > 
> > > A trick we could use would be to put it into Documentation/rcu/, 
> > > linked in via some clever Makefile magic and only usable if a 
> > > ultra-embedded developer does a build with something like 
> > > CONFIG_RCU_TINY=y. That way there's no real maintenance and testing 
> > > overhead.
> > > 
> > > It _does_ have documentation value beyond the ~900 bytes: it's the 
> > > simplest and smallest possible still-working UP RCU implementation 
> > > so it would be easy to teach RCU concepts via that, gradually.
> > 
> > A similar argument could have been used for tiny-shmem when it was 
> > first integrated. As this is hiding behind CONFIG_EMBEDDED, most 
> > users are not going to run in to it, so the confusion of 1 more 
> > RCU variant is not likely to be a problem for those that aren't 
> > actively seeking it out.
> > 
> > So, personally I think it is a good idea, and I have no 
> > reservations about default enabling it for a number of more 
> > constrained SH platforms.
> 
> but at least tiny-shmem is now nicely hidden in mm/shmem.c, in an 
> unintrusive !CONFIG_SHMEM branch. There's no CONFIG_TINY_SHMEM 
> option anymore - it's all done in the !CONFIG_SHMEM case.
> 
Now it is, yes, but it was not originally, and it was still useful when
it was split out. If we are going to tolerate multiple RCU
implementations in the kernel, then I see no reason to not include
tiny-RCU in the same category. Even in the case where some of the other
RCU variants go away, tiny-RCU remains a viable option for simple
platforms that are more concerned about memory than anything else, so
it's always a valid alternative.

If in the future things are more consolidated and the config option goes
away then great, but that hardly seems like a sane prerequisite for
merging it. CONFIG_EMBEDDED handles this just fine. You don't need to
enable it if you don't wish to, but it's certainly measurable enough to
be useful for those of us that have no problems enabling it ;-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ