LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Roman Zippel <zippel@linux-m68k.org>
To: john stultz <johnstul@us.ibm.com>
Cc: lkml <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>, Steven Rostedt <rostedt@goodmis.org>
Subject: [PATCH] Remove obsolete CLOCK_TICK_ADJUST
Date: Fri, 29 Feb 2008 05:49:35 +0100 (CET) [thread overview]
Message-ID: <Pine.LNX.4.64.0802290547320.2723@scrub.home> (raw)
In-Reply-To: <1203647951.6150.80.camel@localhost.localdomain>
Hi,
Can we please clean up the current mess and get the patch below merged?
bye, Roman
Revert bbe4d18ac2e058c56adb0cd71f49d9ed3216a405 and
e13a2e61dd5152f5499d2003470acf9c838eab84 and remove CLOCK_TICK_ADJUST
completely. Add a optional kernel parameter ntp_tick_adj instead to allow
adjusting of a large base drift and thus keeping ntpd happy.
The CLOCK_TICK_ADJUST mechanism was introduced at a time PIT was the
primary clock, but we have a varity of clock sources now, so a global PIT
specific adjustment makes little sense anymore.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
---
include/linux/timex.h | 9 +--------
kernel/time/ntp.c | 11 ++++++++++-
kernel/time/timekeeping.c | 6 ++----
3 files changed, 13 insertions(+), 13 deletions(-)
Index: linux-2.6/include/linux/timex.h
===================================================================
--- linux-2.6.orig/include/linux/timex.h
+++ linux-2.6/include/linux/timex.h
@@ -232,14 +232,7 @@ static inline int ntp_synced(void)
#else
#define NTP_INTERVAL_FREQ (HZ)
#endif
-
-#define CLOCK_TICK_OVERFLOW (LATCH * HZ - CLOCK_TICK_RATE)
-#define CLOCK_TICK_ADJUST (((s64)CLOCK_TICK_OVERFLOW * NSEC_PER_SEC) / \
- (s64)CLOCK_TICK_RATE)
-
-/* Because using NSEC_PER_SEC would be too easy */
-#define NTP_INTERVAL_LENGTH ((((s64)TICK_USEC * NSEC_PER_USEC * USER_HZ) + \
- CLOCK_TICK_ADJUST) / NTP_INTERVAL_FREQ)
+#define NTP_INTERVAL_LENGTH (NSEC_PER_SEC/NTP_INTERVAL_FREQ)
/* Returns how long ticks are at present, in ns / 2^(SHIFT_SCALE-10). */
extern u64 current_tick_length(void);
Index: linux-2.6/kernel/time/ntp.c
===================================================================
--- linux-2.6.orig/kernel/time/ntp.c
+++ linux-2.6/kernel/time/ntp.c
@@ -42,12 +42,13 @@ long time_esterror = NTP_PHASE_LIMIT; /*
long time_freq; /* frequency offset (scaled ppm)*/
static long time_reftime; /* time at last adjustment (s) */
long time_adjust;
+long ntp_tick_adj;
static void ntp_update_frequency(void)
{
u64 second_length = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ)
<< TICK_LENGTH_SHIFT;
- second_length += (s64)CLOCK_TICK_ADJUST << TICK_LENGTH_SHIFT;
+ second_length += (s64)ntp_tick_adj << TICK_LENGTH_SHIFT;
second_length += (s64)time_freq << (TICK_LENGTH_SHIFT - SHIFT_NSEC);
tick_length_base = second_length;
@@ -400,3 +401,11 @@ leave: if ((time_status & (STA_UNSYNC|ST
notify_cmos_timer();
return(result);
}
+
+static int __init ntp_tick_adj_setup(char *str)
+{
+ ntp_tick_adj = simple_strtol(str, NULL, 0);
+ return 1;
+}
+
+__setup("ntp_tick_adj=", ntp_tick_adj_setup);
Index: linux-2.6/kernel/time/timekeeping.c
===================================================================
--- linux-2.6.orig/kernel/time/timekeeping.c
+++ linux-2.6/kernel/time/timekeeping.c
@@ -187,8 +187,7 @@ static void change_clocksource(void)
clock->error = 0;
clock->xtime_nsec = 0;
- clocksource_calculate_interval(clock,
- (unsigned long)(current_tick_length()>>TICK_LENGTH_SHIFT));
+ clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH);
tick_clock_notify();
@@ -245,8 +244,7 @@ void __init timekeeping_init(void)
ntp_clear();
clock = clocksource_get_next();
- clocksource_calculate_interval(clock,
- (unsigned long)(current_tick_length()>>TICK_LENGTH_SHIFT));
+ clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH);
clock->cycle_last = clocksource_read(clock);
xtime.tv_sec = sec;
next prev parent reply other threads:[~2008-02-29 4:49 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-24 2:38 [PATCH] correct inconsistent ntp interval/tick_length usage john stultz
2008-01-24 9:14 ` Valdis.Kletnieks
2008-01-25 14:07 ` Roman Zippel
2008-01-29 2:28 ` john stultz
2008-01-29 4:02 ` Roman Zippel
2008-01-30 2:14 ` john stultz
2008-01-31 1:55 ` Roman Zippel
2008-01-31 2:16 ` john stultz
2008-01-31 5:02 ` Roman Zippel
2008-02-02 1:02 ` John Stultz
2008-02-08 17:33 ` Roman Zippel
2008-02-09 2:17 ` john stultz
2008-02-09 4:47 ` Roman Zippel
2008-02-09 5:04 ` Andrew Morton
2008-02-09 14:13 ` Roman Zippel
2008-02-10 18:45 ` Roman Zippel
2008-02-12 0:09 ` john stultz
2008-02-12 14:36 ` Roman Zippel
2008-02-14 4:36 ` john stultz
2008-02-16 4:24 ` Roman Zippel
2008-02-19 1:02 ` john stultz
2008-02-19 4:04 ` Roman Zippel
2008-02-20 1:50 ` john stultz
2008-02-20 17:08 ` Roman Zippel
2008-02-22 2:39 ` john stultz
2008-02-25 14:44 ` Roman Zippel
2008-02-29 4:49 ` Roman Zippel [this message]
2008-02-29 6:25 ` [PATCH] Remove obsolete CLOCK_TICK_ADJUST Ray Lee
2008-02-29 13:31 ` Roman Zippel
2008-02-29 22:08 ` Andrew Morton
2008-02-29 22:27 ` Roman Zippel
2008-02-29 22:38 ` Andrew Morton
2008-02-29 23:11 ` john stultz
2008-02-29 23:11 ` john stultz
2008-03-02 4:03 ` Roman Zippel
2008-02-29 18:54 ` [PATCH] correct inconsistent ntp interval/tick_length usage Jörg-Volker Peetz
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=Pine.LNX.4.64.0802290547320.2723@scrub.home \
--to=zippel@linux-m68k.org \
--cc=akpm@linux-foundation.org \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
--subject='Re: [PATCH] Remove obsolete CLOCK_TICK_ADJUST' \
/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
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).