[RFC][PATCH] Generic Timekeeping Rework (cumulative - bz'ed) (v.B6)

From: john stultz
Date: Thu Sep 29 2005 - 20:02:43 EST


On Thu, 2005-09-29 at 17:40 -0700, john stultz wrote:
> All,
> Here is the cumulative patch for my generic timekeeping rework (v. B6).
> Individual broken out patches to follow. This patch provides the NTP
> changes, the timesource abstraction, the core timekeeping code as well
> as the code to convert the i386 arch.
>
> New in this release:
> o Minimized the NTP changes needed to better facilitate discussion
> o Maintains both timespec and nsec_t timekeeping values to improve
> performance.
> o Implemented a first pass at Roman's idea for fixed interval time
> accounting in the interrupt hot-path. More optimizations are likely to
> follow, but this hopefully illustrates some improvement and forward
> progress.
> o Added hooks to allow unified code between systems with continuous
> hardware timesource and those that require tick/offset time accounting
> without the performance penalty the old method would cause.
>
> Notes:
> Some of these changes have affected the codes readability, but hopefully
> this will be resolved in future versions.
>
> Since its been awhile since the last release, I'd not be surprised if a
> few regressions have shown up. I've tested this on my laptop, but not
> very widely. Any problem reports would be greatly appreciated.
>
> This patch should apply against Linus' git tree from today.
>
> Please let me know if you have any comments or feedback.
>
> thanks
> -john
>
>
> arch/i386/kernel/timers/Makefile | 9
> arch/i386/kernel/timers/common.c | 172 -------
> arch/i386/kernel/timers/timer.c | 75 ---
> arch/i386/kernel/timers/timer_cyclone.c | 259 -----------
> arch/i386/kernel/timers/timer_hpet.c | 212 ---------
> arch/i386/kernel/timers/timer_none.c | 39 -
> arch/i386/kernel/timers/timer_pit.c | 176 -------
> arch/i386/kernel/timers/timer_pm.c | 268 -----------
> arch/i386/kernel/timers/timer_tsc.c | 595 --------------------------
> b/Documentation/kernel-parameters.txt | 7
> b/arch/i386/Kconfig | 4
> b/arch/i386/kernel/Makefile | 3
> b/arch/i386/kernel/acpi/boot.c | 14
> b/arch/i386/kernel/i8259.c | 40 +
> b/arch/i386/kernel/setup.c | 1
> b/arch/i386/kernel/time.c | 220 +--------
> b/arch/i386/kernel/tsc.c | 306 +++++++++++++
> b/arch/i386/lib/delay.c | 16
> b/drivers/Makefile | 1
> b/drivers/acpi/processor_idle.c | 6
> b/drivers/char/hangcheck-timer.c | 5
> b/drivers/timesource/Makefile | 8
> b/drivers/timesource/acpi_pm.c | 152 ++++++
> b/drivers/timesource/cyclone.c | 138 ++++++
> b/drivers/timesource/hpet.c | 59 ++
> b/drivers/timesource/i386_pit.c | 63 ++
> b/drivers/timesource/jiffies.c | 74 +++
> b/drivers/timesource/tsc-interp.c | 112 ++++
> b/drivers/timesource/tsc.c | 92 ++++
> b/include/asm-generic/timeofday.h | 26 +
> b/include/asm-i386/mach-default/mach_timer.h | 4
> b/include/asm-i386/mach-summit/mach_mpparse.h | 2
> b/include/asm-i386/timeofday.h | 4
> b/include/asm-i386/timer.h | 57 --
> b/include/asm-i386/timex.h | 34 -
> b/include/asm-i386/tsc.h | 50 ++
> b/include/linux/time.h | 4
> b/include/linux/timeofday.h | 83 +++
> b/include/linux/timesource.h | 172 +++++++
> b/include/linux/timex.h | 33 +
> b/init/main.c | 2
> b/kernel/Makefile | 1
> b/kernel/time.c | 90 ++-
> b/kernel/timeofday.c | 575 +++++++++++++++++++++++++
> b/kernel/timer.c | 305 ++++++++-----
> b/kernel/timesource.c | 259 +++++++++++
> 46 files changed, 2583 insertions(+), 2244 deletions(-)


Ack. I just realized I might hit size restrictions on lkml.

bz'ed patch attached.

Sorry,
-john

Attachment: linux-2.6.14-rc2_timeofday-all_B6.patch.bz2
Description: application/bzip