linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Helge Deller <deller@gmx.de>
To: akpm@osdl.org
Cc: linux-arch@vger.kernel.org, mingo@elte.hu, tglx@linutronix.de,
	john stultz <johnstul@us.ibm.com>,
	Christoph Lameter <clameter@sgi.com>,
	Matthew Wilcox <matthew@wil.cx>,
	mm-commits@vger.kernel.org
Subject: Re: + use-cycle_t-instead-of-u64-in-struct-time_interpolator.patch added to -mm tree
Date: Wed, 3 Jan 2007 22:23:11 +0100	[thread overview]
Message-ID: <200701032223.12418.deller@gmx.de> (raw)
In-Reply-To: <200701032100.l03L0REl031061@shell0.pdx.osdl.net>

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, akpm@osdl.org 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 <deller@gmx.de>
> 
> 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 <deller@gmx.de>
> Cc: <linux-arch@vger.kernel.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@elte.hu>
> Signed-off-by: Andrew Morton <akpm@osdl.org>
> ---
> 
>  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 deller@gmx.de are
> 
> use-cycle_t-instead-of-u64-in-struct-time_interpolator.patch
> 



      parent reply	other threads:[~2007-01-03 21:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-03 21:00 + use-cycle_t-instead-of-u64-in-struct-time_interpolator.patch added to -mm tree akpm
2007-01-03 21:05 ` Matthew Wilcox
2007-01-03 21:25   ` Andrew Morton
2007-01-03 21:33     ` Matthew Wilcox
2007-01-03 21:42       ` Andrew Morton
2007-01-03 23:04         ` Luck, Tony
2007-01-03 23:15           ` Andrew Morton
2007-01-03 21:23 ` Helge Deller [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200701032223.12418.deller@gmx.de \
    --to=deller@gmx.de \
    --cc=akpm@osdl.org \
    --cc=clameter@sgi.com \
    --cc=johnstul@us.ibm.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=matthew@wil.cx \
    --cc=mingo@elte.hu \
    --cc=mm-commits@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).