This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Consistently use page_shift in sysdeps/unix/sysv/linux/mmap64.c


On Tue, 2 Jul 2013, Andreas Schwab wrote:

> "Joseph S. Myers" <joseph@codesourcery.com> writes:
> 
> > +      page_shift = __ffs (page_size) - 1;
> 
> This has the effect of using a function call instead of the builtin ffs.

True, but not in any way specific to this patch.  Rather, this is just one 
instance of the general issue of the right way to call functions within 
glibc such that both (a) any applicable compiler optimizations are applied 
and (b) if a particular call does fall back to calling a function, that 
function call is namespace-clean.  It doesn't make sense to do something 
special for one particular __ffs call; any fix would be something that 
makes all __ffs calls work right.  And optimization isn't really 
significant for this particular code, executed (subject to races) at most 
once in a program execution.  The point of using __ffs is to eliminate the 
possibility of a race causing incorrect execution, not to optimize things.

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]