ppc32: Weird process scheduling behaviour with 2.6.24-rc
benh at kernel.crashing.org
Thu Jan 24 19:18:05 EST 2008
On Wed, 2008-01-23 at 14:14 +0100, Michel Dänzer wrote:
> > Does ppc32 (or your instance thereof) have a high resolution
> > sched_clock()?
> I'm not sure (FWIW, we did get support for NO_HZ and HIGH_RES_TIMERS
> 2.6.24-rc as well, but playing with these config options and even
> reverting the code didn't seem to have any effect), can someone from
> linuxppc-dev list answer this?
We do have a hires sched_clock() based on the processor internal
timebase and scaled to ns. Maybe we screwed something up there ? The
implementation is in arch/powerpc/kernel/timer.c
* Scheduler clock - returns current time in nanosec units.
* Note: mulhdu(a, b) (multiply high double unsigned) returns
* the high 64 bits of a * b, i.e. (a * b) >> 64, where a and b
* are 64-bit unsigned numbers.
unsigned long long sched_clock(void)
return mulhdu(get_tb() - boot_tb, tb_to_ns_scale) << tb_to_ns_shift;
(You can mostly ignore the RTC() case which is the native ns clock of
the old 601 processor.
More information about the Linuxppc-dev