• Linus Walleij's avatar
    ARM: 6488/1: nomadik: prevent sched_clock() wraparound · 8fbb97a2
    Linus Walleij authored
    The current implementation of sched_clock() for the Nomadik
    family is based on the clock source that will wrap around without
    any compensation. Currently on the Ux500 after 1030 seconds.
    
    Utilize cnt32_to_63 to expand the sched_clock() counter to 63
    bits and introduce a keepwarm() timer to assure that sched clock
    and this cnt32_to_63 is called atleast once every half period.
    
    When I print out the actual wrap-around time, and using
    a year (3600*24*365 seconds) as minumum wrap limit I get an
    actual wrap-around of:
    sched_clock: using 55 bits @ 8333125 Hz wrap in 416 days
    Signed-off-by: default avatarLinus Walleij <linus.walleij@stericsson.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    8fbb97a2
timer.c 6.99 KB