John, Christoph, all,

The patch is not necessary any longer for the parisc Linux kernel.
Nevertheless it's not wrong and makes it generelly possible to us this 
framework on 32bit architectures as well.

I would prefer if it goes in, but I leave it up to you to decide...

Helge

On Wed Jan 3 2007, [EMAIL PROTECTED] wrote:
> 
> The patch titled
>      use cycle_t instead of u64 in struct time_interpolator
> has been added to the -mm tree.  Its filename is
>      use-cycle_t-instead-of-u64-in-struct-time_interpolator.patch
> 
> See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
> out what to do about this
> 
> ------------------------------------------------------
> Subject: use cycle_t instead of u64 in struct time_interpolator
> From: Helge Deller <[EMAIL PROTECTED]>
> 
> The 32bit and 64bit PARISC Linux kernels suffers from the problem, that the
> gettimeofday() call sometimes returns non-monotonic times.
> 
> The easiest way to fix this, is to drop the PARISC-specific implementation
> and switch over to the generic TIME_INTERPOLATION framework.
> 
> But in order to make it even compile on 32bit PARISC, the patch below which
> touches the generic Linux code, is mandatory.
> 
> More information and the full patch with the parisc-specific changes is 
> included in this thread: 
> http://lists.parisc-linux.org/pipermail/parisc-linux/2006-December/031003.html
> 
> As far as I could see, this patch does not change anything for the existing
> architectures which use this framework (IA64 and SPARC64), since "cycles_t"
> is defined there as unsigned 64bit-integer anyway (which then makes this
> patch a no-change for them).
> 
> Signed-off-by: Helge Deller <[EMAIL PROTECTED]>
> Cc: <[email protected]>
> Cc: Thomas Gleixner <[EMAIL PROTECTED]>
> Cc: Ingo Molnar <[EMAIL PROTECTED]>
> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
> ---
> 
>  include/linux/timex.h |    4 ++--
>  kernel/timer.c        |    6 +++---
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff -puN 
> include/linux/timex.h~use-cycle_t-instead-of-u64-in-struct-time_interpolator 
> include/linux/timex.h
> --- 
> a/include/linux/timex.h~use-cycle_t-instead-of-u64-in-struct-time_interpolator
> +++ a/include/linux/timex.h
> @@ -255,10 +255,10 @@ struct time_interpolator {
>       u8 jitter;                      /* if set compensate for fluctuations */
>       u32 nsec_per_cyc;               /* set by register_time_interpolator() 
> */
>       void *addr;                     /* address of counter or function */
> -     u64 mask;                       /* mask the valid bits of the counter */
> +     cycles_t mask;                  /* mask the valid bits of the counter */
>       unsigned long offset;           /* nsec offset at last update of 
> interpolator */
>       u64 last_counter;               /* counter value in units of the 
> counter at last update */
> -     u64 last_cycle;                 /* Last timer value if 
> TIME_SOURCE_JITTER is set */
> +     cycles_t last_cycle;            /* Last timer value if 
> TIME_SOURCE_JITTER is set */
>       u64 frequency;                  /* frequency in counts/second */
>       long drift;                     /* drift in parts-per-million (or -1) */
>       unsigned long skips;            /* skips forward */
> diff -puN 
> kernel/timer.c~use-cycle_t-instead-of-u64-in-struct-time_interpolator 
> kernel/timer.c
> --- a/kernel/timer.c~use-cycle_t-instead-of-u64-in-struct-time_interpolator
> +++ a/kernel/timer.c
> @@ -1624,7 +1624,7 @@ struct time_interpolator *time_interpola
>  static struct time_interpolator *time_interpolator_list __read_mostly;
>  static DEFINE_SPINLOCK(time_interpolator_lock);
>  
> -static inline u64 time_interpolator_get_cycles(unsigned int src)
> +static inline cycles_t time_interpolator_get_cycles(unsigned int src)
>  {
>       unsigned long (*x)(void);
>  
> @@ -1650,8 +1650,8 @@ static inline u64 time_interpolator_get_
>  
>       if (time_interpolator->jitter)
>       {
> -             u64 lcycle;
> -             u64 now;
> +             cycles_t lcycle;
> +             cycles_t now;
>  
>               do {
>                       lcycle = time_interpolator->last_cycle;
> _
> 
> Patches currently in -mm which might be from [EMAIL PROTECTED] are
> 
> use-cycle_t-instead-of-u64-in-struct-time_interpolator.patch
> 


-
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to