All,
Here is an updated version of the smaller, reworked and improved
patchset, most of which is currently in -mm.
Its been awhile since the last update, so there are lots of little fixes
and a few new patches that will probably need additional testing. Big
thanks to: Tim Mann, Jim Cromie, Roman Zippel, and OGAWA Hirofumi
(hopefully I didn't forget anyone) for submitting fixes and ideas for
improvements
Summary:
This patchset provides a generic timekeeping infrastructure that can be
independent of the timer interrupt. This allows for robust and correct
behavior in cases of late or lost ticks, avoids interpolation errors,
reduces duplication in arch specific code, and assists future changes
such as high-res timers, dynamic ticks, or realtime preemption.
Additionally, it provides finer nanosecond resolution values to the
clock_gettime functions. The patchset also converts the i386, x86-64,
and powerpc arches to use this new infrastructure.
Changes since the C1 release:
o Fix for clock=pit bugs - Tim (needs testing)
o Avoid mults in ntp adjstument- Roman
o spelling fixes - Jim and Tim
o clocksourcemask macro - Jim
o pmtmr fixups and improvements- OGAWA
o functional x86-64 vsyscall gtod
o functional powerpc port
o ktime_t based accounting and accessors (needs testing)
o i386 xtime cleanups
o run timekeeping via a timer (needs more testing)
On my TODO list:
o Continue integrating Roman's ideas and suggestions
o Re-add any bits needed for -HRT and -RT trees
o More attention on x86-64 and powerpc
o Continue merging new bits into -mm
o Try to restore cleanups via small patches
The patchset applies against the current 2.6.17-rc3-git.
The complete patchset can be found here:
http://sr71.net/~jstultz/tod/
I'd like to thank the following people who have contributed ideas,
criticism, testing and code that has helped shape this work:
George Anzinger, Nish Aravamudan, Max Asbock, Serge Belyshev, Dominik
Brodowski, Adrian Bunk, Jim Cromie, Thomas Gleixner, Darren Hart, OGAWA
Hirofumi, Christoph Lameter, Matt Mackal, Tim Mann, Keith Mannthey, Ingo
Molnar, Andrew Morton, Paul Munt, Martin Schwidefsky, Frank Sorenson,
Ulrich Windl, Jonathan Woithe, Darrick Wong, Roman Zippel and any others
whom I've accidentally left off this list.
thanks
-john
On Wed, 2006-05-10 at 16:57 -0700, john stultz wrote:
> All,
> Here is an updated version of the smaller, reworked and improved
> patchset, most of which is currently in -mm.
Tim pointed out I had a typo in apm.c that kept it from building. The
following fix is need (I'll be making a silent update of the release on
the web site).
thanks
-john
diff --git a/arch/i386/kernel/apm.c b/arch/i386/kernel/apm.c
index 25d5ef4..5811438 100644
--- a/arch/i386/kernel/apm.c
+++ b/arch/i386/kernel/apm.c
@@ -1154,7 +1154,7 @@ static void set_time(void)
if (got_clock_diff) { /* Must know time zone in order to set clock */
ts.tv_sec = get_cmos_time() + clock_cmos_diff;
ts.tv_nsec = 0;
- do_settimeofday(&ts)
+ do_settimeofday(&ts);
}
}