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    [W:0.019 / U:31.440 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site