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: 143+ 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 13:50 ` 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 3:08 ` 2.6.18-rc5-mm1 Andrew Morton
2006-09-07 17:33 ` 2.6.18-rc5-mm1 keith mannthey
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-03 9:09 ` 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 ` [parisc-linux] [PATCH] Fix conflict with the is_init identifier on parisc Eric W. Biederman
2006-09-04 18:24 ` 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.