lkml.org 
[lkml]   [2007]   [Jun]   [6]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 6 Jun 2007 09:30:23 +0200
FromIngo Molnar <>
SubjectRe: [-mm patch] kernel/sched{,_fair}.c: make code static
* Andrew Morton <akpm@linux-foundation.org> wrote:

> > Signed-off-by: Adrian Bunk <bunk@stusta.de>
> > 
> > ---
> > 
> > BTW: Please don't #include C files in sched.c
> 
> Yeah.

In this case it's not that bad. It makes the source quite a bit cleaner 
and avoids having to create artificial interfaces, global functions, 
etc. between the .o's.

> > -long div64_s(s64 divident, unsigned long divisor)
> > +static long div64_s(s64 divident, unsigned long divisor)
> 
> "divident" does appear to be a word, but I suspect "dividend" was 
> intended.

yeah indeed - fixed.

> Why is this function lurking in the CPU scheduler rather than in 
> lib/somewhere.c?
> 
> Doesn't an unsigned divide give the same result as a signed one?

no! 0xfffffff0 / 2 is 0x7fffffff when the division is unsigned, and 
7ffffff8 (== -8) when signed. On x86 the silicon only offers us unsigned 
64-bit division, so we first have to make '+16' out of -16, then divide 
by 2, and turn the +4 into -4. (On x86_64 there's no such problem, 
there's an idiv and a div 64-bit instruction as well, and gcc picks the 
right one depending on the type of the variable.)
i think Roman has recently done a nice cleanup patch that introduces 
this? I'll change CFS to use that interface once it's upstream.

	Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-06-06 07:33    [from the cache]
©2003-2008