lkml.org 
[lkml]   [2009]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] v3 RCU: the bloatwatch edition
On Tue, Apr 28, 2009 at 03:24:14PM +0100, David Howells wrote:
> Paul E. McKenney <paulmck@linux.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:
>
> On FRV, CLASSIC_RCU:
>
> text data bss dec hex filename
> 2616 184 0 2800 af0 kernel/rcuclassic.o
> 884 32 20 936 3a8 kernel/rcupdate.o
>
> TREE_RCU:
>
> 3940 328 0 4268 10ac kernel/rcutree.o
> 884 32 20 936 3a8 kernel/rcupdate.o
>
> TINY_RCU:
>
> 1152 32 0 1184 4a0 kernel/rcutiny.o
> 836 32 20 888 378 kernel/rcupdate.o
>
> It works on my FRV board.
>
> Possibly TINY_RCU could be shrunk a bit more by a judicious bit of inlining of
> some of the very small functions.
>
> Acked-by: David Howells <dhowells@redhat.com>

Thank you for looking this over!

Your thought is that some of the functions could be moved to tinyrcu.h?
Indeed, some of them would be smaller if inlined than even the call
sequence. For example, rcu_needs_cpu() should remove code from the
dynticks implementation given that it always returns zero.

Thanx, Paul


\
 
 \ /
  Last update: 2009-04-28 21:49    [W:0.550 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site