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
>
prev 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).