Thread (33 messages) 33 messages, 5 authors, 2008-01-29

Re: ppc32: Weird process scheduling behaviour with 2.6.24-rc

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2008-01-24 08:18:48

On Wed, 2008-01-23 at 14:14 +0100, Michel Dänzer wrote:
quoted
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
in
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
the
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)
{
	if (__USE_RTC())
		return get_rtc();
	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.

Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help