lkml.org 
[lkml]   [2012]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 33/36] AArch64: Generic timers support
    On Fri, Jul 13, 2012 at 01:40:03PM +0100, Arnd Bergmann wrote:
    > On Thursday 12 July 2012, John Stultz wrote:
    > >
    > > On 07/12/2012 10:31 AM, Marc Zyngier wrote:
    > > > On Thu, 12 Jul 2012 09:57:33 -0700, John Stultz <john.stultz@linaro.org>
    > > > wrote:
    > > >
    > > >> So following ia64's method is probably better then copying the 8253's
    > > >> rate if you're not concerned about tick-granularity error.
    > > > The 8253 is completely meaningless in our case (though I'm sure someone
    > > > could try and bold one on the side of an Aarch64 CPU...), so going the ia64
    > > > way is probably best (erm... this last bit doesn't sound quite right,
    > > > doesn't it?).
    > >
    > > Sorry, the "copying the 8253's" bit didn't come out sarcastic enough. :)
    > >
    > > The best solution would be to include the actual tick-granularity, but
    > > given its not really an architecture constant (which CLOCK_TICK_RATE
    > > assumes), that probably wouldn't be appropriate.
    >
    > Hmm, in the quest to eliminate CLOCK_TICK_RATE entirely, could we
    > make a Kconfig symbol that is selected for all architectures that
    > (may) rely on a periodic timer tick and require this to be set?
    >
    > Architectures that always have a working clock source would then just
    > not include the timex.h header and #define ACT_HZ HZ in common code.

    Would something like below be enough?

    Also, are there any implications if we boot with clocksource=jiffies?

    --- a/include/linux/jiffies.h
    +++ b/include/linux/jiffies.h
    @@ -55,7 +55,11 @@
    + ((((NOM) % (DEN)) << (LSH)) + (DEN) / 2) / (DEN))

    /* HZ is the requested value. ACTHZ is actual HZ ("<< 8" is for accuracy) */
    +#ifdef CLOCK_TICK_RATE
    #define ACTHZ (SH_DIV (CLOCK_TICK_RATE, LATCH, 8))
    +#else
    +#define ACTHZ (HZ << 8)
    +#endif

    /* TICK_NSEC is the time between ticks in nsec assuming real ACTHZ */
    #define TICK_NSEC (SH_DIV (1000000UL * 1000, ACTHZ, 8))
    --
    Catalin


    \
     
     \ /
      Last update: 2012-07-13 18:41    [W:0.027 / U:121.328 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site