[PATCHSET 0/10] Time: Generic Timekeeping (v.C0)

From: john stultz
Date: Fri Mar 17 2006 - 19:37:39 EST


All,
So after after the last round of feedback on this series, I've
gone back to the drawing board and have tried to further cut the patch
set down to the bare minimum.

I've realized that much of the trouble getting this into mainline have
come from my falling into the well known "here's a new subsystem that
duplicates the old one, but is better and cleaner and fixes bugs" trap.
Thus now I'm trying the time-tested "fix what is there with small
patches" method (which I would have used from the start, but I didn't
think I could make such drastic changes without breaking everyone
first).

The majority of this new incremental design should be credited to Roman
Zippel, but it is my implementation, so he gets the credit and I get
the blame. :)

This is the rough first cut, so it will probably need a few extra
passes to be cleaned up and ready for mainline. And while there should
not be any behaviour changes, since this method also affects all arches
from the start, extra testing will be needed to make sure it has been
done correctly. Also more work is needed before this can be
re-integrated w/ the -RT tree, as timekeeping is still done from
interrupt context.


Summary:
This patchset provides a generic timekeeping interfaces that
are 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 allows or
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.


Changes since the B20 release:
o Threw out old NTP changes
o Threw out all code cleanups
o New minimal core implementation for all arches
o Added sysfs clocksource fix
o Added slow TSC detection

On my TODO list:
o Get x86-64 and powerpc patches back up and running
o Try to restore cleanups via small patches

The patchset applies against the current 2.6.16-rc6-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, Thomas Gleixner, Darren Hart, Christoph
Lameter, Matt Mackal, 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/