On Thu, Nov 03, 2011 at 09:14:44AM -0400, John Stultz wrote:
> On Thu, 2011-11-03 at 11:59 +1100, Anton Blanchard wrote:
> > plain text document attachment (clock3)
> > Use clocksource_register_hz which calculates the shift/mult
> > factors for us.
> > 
> > Signed-off-by: Anton Blanchard <an...@samba.org>
> > ---
> > 
> > Index: linux-build/arch/powerpc/kernel/time.c
> > ===================================================================
> > --- linux-build.orig/arch/powerpc/kernel/time.c     2011-11-03 
> > 10:19:59.493679032 +1100
> > +++ linux-build/arch/powerpc/kernel/time.c  2011-11-03 10:20:00.965704053 
> > +1100
> > @@ -86,8 +86,6 @@ static struct clocksource clocksource_rt
> >     .rating       = 400,
> >     .flags        = CLOCK_SOURCE_IS_CONTINUOUS,
> >     .mask         = CLOCKSOURCE_MASK(64),
> > -   .shift        = 22,
> > -   .mult         = 0,      /* To be filled in */
> >     .read         = rtc_read,
> >  };
> > 
> > @@ -97,8 +95,6 @@ static struct clocksource clocksource_ti
> >     .rating       = 400,
> >     .flags        = CLOCK_SOURCE_IS_CONTINUOUS,
> >     .mask         = CLOCKSOURCE_MASK(64),
> > -   .shift        = 22,
> > -   .mult         = 0,      /* To be filled in */
> >     .read         = timebase_read,
> >  };
> 
> So I've held off on ppc conversion to clocksource_register_hz due to the
> fact that the ppc vdso gettimeofday at least used to make assumptions
> that shift was 22.
> 
> Is that no longer the case?

It is still the case; specifically, update_vsyscall() in
arch/powerpc/kernel/time.c converts a multiplier value to a 'tb_to_xs'
multiplier (timebase to xsec conversion factor, where 1 xsec = 2^-20
seconds) using a factor which assumes a shift of 22.  The factor needs
to be 2^(20 + 64 - shift) / 1e9, so we could accommodate other shift
values by changing the line that computes new_tb_to_xs to do

       new_tb_to_xs = (u64) mult * (19342813113834067ULL >> shift);

assuming the shift value is easily available to update_vsyscall
(I assume it would be clock->shift).

Paul.
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to