lkml.org 
[lkml]   [2009]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] sched: Support current clocksource handling in fallback sched_clock().
From
Date
On Wed, 2009-05-27 at 09:15 +0900, Paul Mundt wrote:

> unsigned long long __attribute__((weak)) sched_clock(void)
> {
> + /*
> + * Use the current clocksource when it becomes available later in
> + * the boot process, and ensure that it is usable for sched_clock().
> + */
> + if (clock && (clock->flags & CLOCK_SOURCE_USE_FOR_SCHED_CLOCK))
> + return cyc2ns(clock, clocksource_read(clock));
> +
> + /* Otherwise just fall back on jiffies */
> return (unsigned long long)(jiffies - INITIAL_JIFFIES)

Do we really need all this complexity in a fast path? the jiffies
clocksource is static and always ready. Could we instead remove the
usage of "clock" and create a new pointer called "sched_clocksource" and
initialize it to the jiffies clock, and allow the clocksource management
code to update that new pointer based on the
CLOCK_SOURCE_USE_FOR_SCHED_CLOCK flag when new clocksources are
registered/removed/marked unstable etc..

that would eliminate all the code in sched_clock except one line,

unsigned long long __attribute__((weak)) sched_clock(void)
{
return cyc2ns(sched_clocksource, clocksource_read(sched_clocksource));
}
Daniel



\
 
 \ /
  Last update: 2009-05-27 18:29    [from the cache]
©2003-2011 Jasper Spaans