From: john stultz <johnstul@us.ibm.com>
To: David Howells <dhowells@redhat.com>
Cc: Adrian Bunk <bunk@stusta.de>, Andrew Morton <akpm@osdl.org>,
Arjan van de Ven <arjan@linux.intel.com>,
linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
Jeff Garzik <jeff@garzik.org>,
netdev@vger.kernel.org
Subject: Re: [PATCH] FRV: do_gettimeofday() should no longer use tickadj
Date: Tue, 05 Sep 2006 18:46:43 -0700 [thread overview]
Message-ID: <1157507203.2222.11.camel@localhost> (raw)
In-Reply-To: <6260.1157470557@warthog.cambridge.redhat.com>
On Tue, 2006-09-05 at 16:35 +0100, David Howells wrote:
> Stop do_gettimeofday() on FRV from using tickadj, and model it after ARM
> instead.
>
> This patch also provides a placeholder macro for getting hardware timer data to
> be filled in when such is available.
>From this patch it looks like the FRV arch could be trivially converted
to GENERIC_TIME.
Would you consider the following, totally untested patch?
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Kconfig | 4 ++
kernel/time.c | 81 ----------------------------------------------------------
2 files changed, 4 insertions(+), 81 deletions(-)
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index 95a3892..a601a17 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -29,6 +29,10 @@ config GENERIC_HARDIRQS
bool
default n
+config GENERIC_TIME
+ bool
+ default y
+
config TIME_LOW_RES
bool
default y
diff --git a/arch/frv/kernel/time.c b/arch/frv/kernel/time.c
index d5b64e1..68a77fe 100644
--- a/arch/frv/kernel/time.c
+++ b/arch/frv/kernel/time.c
@@ -32,8 +32,6 @@
#define TICK_SIZE (tick_nsec / 1000)
-extern unsigned long wall_jiffies;
-
unsigned long __nongprelbss __clkin_clock_speed_HZ;
unsigned long __nongprelbss __ext_bus_clock_speed_HZ;
unsigned long __nongprelbss __res_bus_clock_speed_HZ;
@@ -145,85 +143,6 @@ void time_init(void)
}
/*
- * This version of gettimeofday has near microsecond resolution.
- */
-void do_gettimeofday(struct timeval *tv)
-{
- unsigned long seq;
- unsigned long usec, sec;
- unsigned long max_ntp_tick;
-
- do {
- unsigned long lost;
-
- seq = read_seqbegin(&xtime_lock);
-
- usec = 0;
- lost = jiffies - wall_jiffies;
-
- /*
- * If time_adjust is negative then NTP is slowing the clock
- * so make sure not to go into next possible interval.
- * Better to lose some accuracy than have time go backwards..
- */
- if (unlikely(time_adjust < 0)) {
- max_ntp_tick = (USEC_PER_SEC / HZ) - tickadj;
- usec = min(usec, max_ntp_tick);
-
- if (lost)
- usec += lost * max_ntp_tick;
- }
- else if (unlikely(lost))
- usec += lost * (USEC_PER_SEC / HZ);
-
- sec = xtime.tv_sec;
- usec += (xtime.tv_nsec / 1000);
- } while (read_seqretry(&xtime_lock, seq));
-
- while (usec >= 1000000) {
- usec -= 1000000;
- sec++;
- }
-
- tv->tv_sec = sec;
- tv->tv_usec = usec;
-}
-
-EXPORT_SYMBOL(do_gettimeofday);
-
-int do_settimeofday(struct timespec *tv)
-{
- time_t wtm_sec, sec = tv->tv_sec;
- long wtm_nsec, nsec = tv->tv_nsec;
-
- if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
- return -EINVAL;
-
- write_seqlock_irq(&xtime_lock);
- /*
- * This is revolting. We need to set "xtime" correctly. However, the
- * value in this location is the value at the most recent update of
- * wall time. Discover what correction gettimeofday() would have
- * made, and then undo it!
- */
- nsec -= 0 * NSEC_PER_USEC;
- nsec -= (jiffies - wall_jiffies) * TICK_NSEC;
-
- wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - sec);
- wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - nsec);
-
- set_normalized_timespec(&xtime, sec, nsec);
- set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec);
-
- ntp_clear();
- write_sequnlock_irq(&xtime_lock);
- clock_was_set();
- return 0;
-}
-
-EXPORT_SYMBOL(do_settimeofday);
-
-/*
* Scheduler clock - returns current time in nanosec units.
*/
unsigned long long sched_clock(void)
next prev parent reply other threads:[~2006-09-06 1:47 UTC|newest]
Thread overview: 138+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-01 8:58 2.6.18-rc5-mm1 Andrew Morton
2006-09-01 9:53 ` 2.6.18-rc5-mm1 Manuel Lauss
2006-09-01 10:44 ` 2.6.18-rc5-mm1 Grant Wilson
2006-09-01 13:50 ` [-mm patch] drivers/md/Kconfig: fix BLOCK dependency Adrian Bunk
2006-09-01 14:15 ` David Howells
2006-09-01 14:26 ` Jens Axboe
2006-09-01 16:00 ` 2.6.18-rc5-mm1: drivers/infiniband/hw/amso1100/c2.c compile error Adrian Bunk
2006-09-01 17:13 ` Andrew Morton
2006-09-01 17:34 ` Roland Dreier
2006-09-01 18:23 ` Andrew Morton
2006-09-01 19:53 ` Roland Dreier
2006-09-01 20:04 ` Andrew Morton
2006-09-01 20:20 ` Tom Tucker
2006-09-01 20:43 ` Russell King
2006-09-01 20:54 ` Roland Dreier
2006-09-01 21:01 ` [openib-general] " Bryan O'Sullivan
2006-09-01 20:59 ` Andrew Morton
2006-09-01 21:05 ` Roland Dreier
2006-09-01 21:26 ` Andrew Morton
2006-09-01 22:42 ` Roland Dreier
2006-09-01 20:51 ` Roland Dreier
2006-09-01 21:03 ` Andrew Morton
2006-09-01 20:45 ` [openib-general] " Bryan O'Sullivan
2006-09-01 20:59 ` Roland Dreier
2006-09-01 21:03 ` Bryan O'Sullivan
2006-09-01 16:40 ` 2.6.18-rc5-mm1 Maciej Rutecki
2006-09-05 16:16 ` 2.6.18-rc5-mm1 Bjorn Helgaas
2006-09-06 16:55 ` 2.6.18-rc5-mm1 Maciej Rutecki
2006-09-07 3:08 ` 2.6.18-rc5-mm1 Andrew Morton
2006-09-07 17:33 ` 2.6.18-rc5-mm1 keith mannthey
2006-09-01 19:58 ` [-mm patch] fs/reiser4/: possible cleanups Adrian Bunk
2006-09-01 23:13 ` 2.6.18-rc5-mm1 (IDE resume regression) Rafael J. Wysocki
2006-09-02 0:08 ` Andrew Morton
2006-09-02 1:00 ` 2.6.18-rc5-mm1 Matthias Hentges
2006-09-02 1:30 ` 2.6.18-rc5-mm1 Andrew Morton
[not found] ` <44F93EB3.8050500@goop.org>
2006-09-02 8:37 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-02 8:44 ` 2.6.18-rc5-mm1 Greg KH
2006-09-02 8:47 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-02 8:52 ` 2.6.18-rc5-mm1 Greg KH
2006-09-02 9:36 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-02 9:38 ` 2.6.18-rc5-mm1 Jeff Garzik
2006-09-02 9:47 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-02 9:56 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-09 23:47 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-10 16:24 ` 2.6.18-rc5-mm1 Matthias Hentges
2006-09-02 1:06 ` 2.6.18-rc5-mm1 Grant Coady
2006-09-02 1:12 ` 2.6.18-rc5-mm1 Dmitry Torokhov
2006-09-02 1:33 ` 2.6.18-rc5-mm1 Dmitry Torokhov
2006-09-02 2:10 ` 2.6.18-rc5-mm1 Grant Coady
2006-09-02 1:39 ` 2.6.18-rc5-mm1 Andrew Morton
2006-09-02 3:51 ` 2.6.18-rc5-mm1 Grant Coady
2006-09-02 20:20 ` 2.6.18-rc5-mm1 Grant Coady
2006-09-02 20:38 ` "VGER BF report:.." ? Matti Aarnio
2006-09-03 15:06 ` Jan Engelhardt
2006-09-03 19:59 ` Grant Coady
2006-09-02 9:05 ` 2.6.18-rc5-mm1 Philippe Gramoullé
2006-09-02 11:40 ` 2.6.18-rc5-mm1 Stefan Richter
2006-09-02 11:51 ` 2.6.18-rc5-mm1 Philippe Gramoullé
2006-09-03 9:09 ` [2.6.18-rc5-mm1 ACPI] Unknown exception code: 0xFFFFFFEA Mike Galbraith
2006-09-05 16:18 ` Bjorn Helgaas
2006-09-03 17:25 ` 2.6.18-rc5-mm1: sysfs_init() related compile error Adrian Bunk
2006-09-03 22:17 ` 2.6.18-rc5-mm1: MMU=n " Adrian Bunk
2006-09-04 7:44 ` Peter Zijlstra
2006-09-04 15:44 ` Adrian Bunk
2006-09-03 23:34 ` Lost DVD-RW [Was Re: 2.6.18-rc5-mm1] J.A. Magallón
2006-09-04 1:12 ` Andrew Morton
2006-09-04 2:42 ` Tejun Heo
2006-09-04 22:26 ` J.A. Magallón
2006-09-07 9:34 ` Tejun Heo
2006-09-07 11:13 ` J.A. Magallón
2006-09-07 11:32 ` [PATCH libata-dev#upstream-fixes] libata: ignore CFA signature while sanity-checking an ATAPI device Tejun Heo
2006-09-07 20:27 ` Andrew Morton
2006-09-07 21:03 ` Jeff Garzik
2006-09-08 7:56 ` Tejun Heo
2006-09-09 14:46 ` Lost DVD-RW [Was Re: 2.6.18-rc5-mm1] Alan Cox
2006-09-04 11:41 ` 2.6.18-rc5-mm1: is_init() parisc compile error Adrian Bunk
2006-09-04 13:48 ` [parisc-linux] " Matthew Wilcox
2006-09-04 18:24 ` [PATCH] Fix conflict with the is_init identifier on parisc Eric W. Biederman
2006-09-04 18:41 ` Adrian Bunk
2006-09-04 19:18 ` Andrew Morton
2006-09-04 17:03 ` [-mm patch] drivers/infiniband/hw/amso1100/: possible cleanups Adrian Bunk
2006-09-04 17:03 ` [-mm patch] make fs/lockd/host.c:nlm_lookup_host() static Adrian Bunk
2006-09-04 17:04 ` 2.6.18-rc5-mm1: ARCH_DISCONTIGMEM_ENABLE=y, SMP=n compile error Adrian Bunk
2006-09-04 19:04 ` Andrew Morton
2006-09-04 19:24 ` Adrian Bunk
2006-09-04 17:04 ` [-mm patch] fix kernel_execve() related compile errors Adrian Bunk
2006-09-04 17:04 ` [-mm patch] lib/ioremap.c must #include <linux/mm.h> Adrian Bunk
2006-09-04 18:41 ` [-mm patch] mm/memory_hotplug.c must #include <linux/cpuset.h> Adrian Bunk
2006-09-04 22:17 ` [-mm patch] arch/m68knommu/kernel/sys_m68k.c must #include <asm/unistd.h> Adrian Bunk
2006-09-05 13:03 ` lockdep oddity Heiko Carstens
2006-09-05 18:12 ` Ingo Molnar
2006-09-05 18:57 ` Hua Zhong
2006-09-05 18:52 ` Ingo Molnar
2006-09-05 19:08 ` Ingo Molnar
2006-09-05 19:37 ` Ingo Molnar
2006-09-06 6:54 ` Heiko Carstens
2006-09-06 10:05 ` Ingo Molnar
2006-09-06 7:20 ` Heiko Carstens
2006-09-06 7:47 ` Andrew Morton
2006-09-06 8:01 ` Heiko Carstens
2006-09-06 8:23 ` Hua Zhong
2006-09-06 8:40 ` Ingo Molnar
2006-09-06 14:19 ` Daniel Walker
2006-09-06 14:29 ` Heiko Carstens
2006-09-06 14:34 ` Daniel Walker
2006-09-05 20:07 ` Daniel Walker
2006-09-06 7:18 ` Heiko Carstens
2006-09-06 11:58 ` Heiko Carstens
2006-09-05 13:25 ` 2.6.18-rc5-mm1: {dis,en}able_irq_lockdep_irqrestore compile error Adrian Bunk
2006-09-05 15:21 ` [PATCH] FRV: Fix " David Howells
2006-09-06 12:50 ` Ingo Molnar
2006-09-05 15:27 ` [PATCH] NOMMU: Move the fallback arch_vma_name() to a sensible place David Howells
2006-09-05 15:29 ` [PATCH] NOMMU: Provide page_mkclean() for NOMMU David Howells
2006-09-05 15:31 ` [PATCH] NOMMU: Make lib/ioremap.c conditional David Howells
2006-09-05 15:35 ` [PATCH] FRV: do_gettimeofday() should no longer use tickadj David Howells
2006-09-06 1:46 ` john stultz [this message]
2006-09-06 9:27 ` David Howells
2006-09-06 9:43 ` Ingo Molnar
2006-09-06 12:30 ` David Howells
2006-09-06 12:56 ` Ingo Molnar
2006-09-06 14:46 ` David Howells
2006-09-06 23:01 ` Benjamin Herrenschmidt
2006-09-07 9:55 ` David Howells
2006-09-07 10:26 ` Ingo Molnar
2006-09-07 13:34 ` David Howells
2006-09-07 22:53 ` Benjamin Herrenschmidt
2006-09-08 10:25 ` David Howells
2006-09-08 11:05 ` Benjamin Herrenschmidt
2006-09-08 12:24 ` David Howells
2006-09-08 12:29 ` David Howells
2006-09-11 4:06 ` Benjamin Herrenschmidt
2006-09-09 5:46 ` Ingo Molnar
2006-09-11 10:46 ` David Howells
2006-09-05 16:00 ` 2.6.18-rc5-mm1 dependency on curses devel still there Steve Fox
2006-09-06 23:06 ` [-mm patch] ATA_JMICRON: remove the superfluous ATA dependency Adrian Bunk
2006-09-06 23:07 ` [-mm patch] ACPI_SONY shouldn't default m Adrian Bunk
2006-09-07 3:30 ` Andrew Morton
2006-09-07 4:41 ` Randy.Dunlap
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=1157507203.2222.11.camel@localhost \
--to=johnstul@us.ibm.com \
--cc=akpm@osdl.org \
--cc=arjan@linux.intel.com \
--cc=bunk@stusta.de \
--cc=dhowells@redhat.com \
--cc=jeff@garzik.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=netdev@vger.kernel.org \
/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