Skip to content

High resolution timer / dynamic tick update

Thomas Gleixner lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest46 patches 27 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/46Add irq flag to disable balancing for an interruptarch/i386/kernel/io_apic.c include/linux/interrupt.h include/linux/irq.h +2 more+34 -190 replies
2/46Add a functions to handle interrupt affinity settinginclude/linux/irq.h kernel/irq/manage.c kernel/irq/proc.c+56 -260 replies
3/46HZ free ntpinclude/linux/timex.h kernel/hrtimer.c kernel/time/ntp.c +1 more+36 -160 replies
4/46Uninline jiffies.h functionsinclude/linux/jiffies.h kernel/time.c+229 -2000 replies
5/46kernel/time.c+42 -10 replies
6/46Fix timeout overflow with jiffiesinclude/linux/jiffies.h+2 -20 replies
7/46GTOD: persistent clock supportinclude/linux/hrtimer.h include/linux/time.h kernel/hrtimer.c +1 more+48 -10 replies
8/46i386: use GTOD persistent clock supportarch/i386/kernel/apm.c arch/i386/kernel/time.c+1 -970 replies
9/46i386 Remove useless code in tsc.carch/i386/kernel/tsc.c+2 -380 replies
10/46Simplify the registration of clocksourceskernel/time/clocksource.c+57 -610 replies
11/46x86: rewrite SMP TSC sync codearch/i386/kernel/Makefile arch/i386/kernel/smpboot.c arch/i386/kernel/tsc.c +9 more+295 -4630 replies
12/46clocksource: replace is_continuous by a flag fieldarch/i386/kernel/hpet.c arch/i386/kernel/tsc.c drivers/clocksource/acpi_pm.c +5 more+19 -102 replies
13/46clocksource: fixup is_continous changes on ARMarch/arm/mach-imx/time.c arch/arm/mach-ixp4xx/common.c arch/arm/mach-netx/time.c +1 more+4 -40 replies
14/46clocksource: fixup is_continous changes on AVR32arch/avr32/kernel/time.c+1 -10 replies
15/46clocksource: fixup is_continous changes on S390arch/s390/kernel/time.c+1 -10 replies
16/46clocksource: fixup is_continous changes on MIPSarch/mips/kernel/time.c+1 -10 replies
17/46clocksource: Remove the update callbackarch/i386/kernel/tsc.c include/linux/clocksource.h kernel/timer.c+20 -410 replies
18/46clocksource: Add verification (watchdog) helperarch/i386/Kconfig arch/i386/kernel/tsc.c include/linux/clocksource.h +2 more+161 -781 reply
19/46Mark TSC on GeodeLX reliablearch/i386/kernel/tsc.c include/asm-i386/msr.h+23 -00 replies
20/46uninline irq_enter()include/linux/hardirq.h kernel/softirq.c+11 -60 replies
21/46Fix cascade lookup of next_timer_interruptkernel/timer.c+81 -700 replies
22/46Extend next_timer_interrupt() to use a reference jiffieinclude/linux/timer.h kernel/hrtimer.c kernel/timer.c+22 -40 replies
23/46hrtimers: namespace and enum cleanupinclude/linux/hrtimer.h include/linux/timer.h kernel/fork.c +5 more+34 -290 replies
24/46hrtimers: namespace and enum cleanup vs. git-inputdrivers/input/touchscreen/ads7846.c+6 -50 replies
25/46hrtimers: cleanup lockinginclude/linux/hrtimer.h kernel/hrtimer.c+126 -1010 replies
26/46hrtimers; add state trackinginclude/linux/hrtimer.h kernel/hrtimer.c+67 -90 replies
27/46hrtimers: clean up callback trackinginclude/linux/hrtimer.h kernel/hrtimer.c+1 -100 replies
28/46hrtimers: move and add documentationDocumentation/hrtimers.txt Documentation/hrtimers/highres.txt Documentation/hrtimers/hrtimers.txt+427 -1780 replies
29/46ACPI: fix missing include for UPdrivers/acpi/processor_idle.c+10 -00 replies
30/46ACPI keep track of timer broadcastingdrivers/acpi/processor_idle.c include/acpi/processor.h+49 -190 replies
31/46Allow early access to the power management timerarch/i386/kernel/acpi/boot.c drivers/clocksource/acpi_pm.c include/linux/acpi_pmtmr.h+48 -120 replies
32/46i386, apic: clean up the APIC codearch/i386/kernel/apic.c arch/i386/kernel/io_apic.c arch/i386/kernel/irq.c +2 more+1076 -10270 replies
33/46clockevents: add core functionalityinclude/linux/clockchips.h include/linux/hrtimer.h kernel/hrtimer.c +3 more+493 -150 replies
34/46tick-management: core functionalityinclude/linux/tick.h init/main.c kernel/time/Makefile +1 more+302 -10 replies
35/46tick-management: broadcast functionalitykernel/time/Makefile kernel/time/tick-broadcast.c kernel/time/tick-common.c +1 more+378 -220 replies
36/46tick-management: dyntick / highres functionalityDocumentation/kernel-parameters.txt include/linux/hardirq.h include/linux/hrtimer.h +11 more+1025 -151 reply
37/46clockevents: i383 driversDocumentation/kernel-parameters.txt arch/i386/Kconfig arch/i386/kernel/Makefile +15 more+815 -8490 replies
38/46i386 rework local apic timer calibrationarch/i386/kernel/apic.c include/asm-i386/apic.h+225 -1450 replies
39/46i386 prepare for dyntickarch/i386/kernel/process.c+3 -00 replies
40/46i386 prepare nmi watchdog for dynticksarch/i386/kernel/nmi.c+7 -20 replies
41/46i386: enable dynticks in kconfigarch/i386/Kconfig+2 -00 replies
42/46hrtimers: add high resolution timer supportDocumentation/kernel-parameters.txt include/linux/hrtimer.h include/linux/interrupt.h +5 more+652 -600 replies
43/46hrtimers: prevent possible itimer DoSkernel/itimer.c kernel/signal.c+47 -250 replies
44/46Add debugging feature /proc/timer_statDocumentation/hrtimer/timer_stats.txt include/linux/hrtimer.h include/linux/timer.h +6 more+651 -40 replies
45/46Add debugging feature /proc/timer_listinclude/linux/tick.h kernel/time/Makefile kernel/time/tick-broadcast.c +2 more+329 -20 replies
46/46Add SysRq-Q to print timer_list debug infodrivers/char/sysrq.c include/linux/hrtimer.h+16 -10 replies

Reviews trailers per patch

1 of 46 patches has a Reviewed-by or Acked-by.

PatchThomas Gleixner
1/46
2/46
3/46
4/46
5/46
6/46
7/46
8/46
9/46
10/46
11/46
12/46A-b
13/46
14/46
15/46
16/46
17/46
18/46
19/46
20/46
21/46
22/46
23/46
24/46
25/46
26/46
27/46
28/46
29/46
30/46
31/46
32/46
33/46
34/46
35/46
36/46
37/46
38/46
39/46
40/46
41/46
42/46
43/46
44/46
45/46
46/46

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [patch 00/46] High resolution timer / dynamic tick update

This is a full replacement queue for the high resolution timer / dynamic ticks implemementation in -mm.

This version includes the following improvements:

- Seperate clockevents management of devices and users

- Provide a generic tick managament infrastructure, which makes use of the clock events management layer. This provides:

- periodic tick management
- broadcast management (e.g. to solve the APIC stops in C3 power state problem)
- dynamic tick core functionality
- high resolution timer core infrastructure

This allows to provide dynamic ticks with low and high resolution timers by sharing the infrastructure. [read: CONFIG_NO_HZ=y is now available without CONFIG_HIGH_RES_TIMERS as well.]

( The dynamic tick implementation also contains a fix for the
generic next_timer_interrupt() function, which did not do the cascade lookups correctly. )

- Provide a generic way to verify clocksources. TSC needs verification due to broken hardware and BIOS implementations. The previous attempt to allow TSC usage for high resolution and/or dynamic ticks only in combination with the PM-Timer made hardwired assumptions, which are ugly to maintain. The new verification code solves this by chosing the best available clocksource for verification and handles the usability check for highres / dynamic ticks. This makes TSC code agnostic of other hardware available in the system.

- Removed the dynamic tick specific parts from the high resolution timer code.

- Dynamic ticks and high resolution timers can be disabled separately at compile time or at run time from the kernel command line.

Thomas, Ingo

P.S:
Sorry for the resend. Did not notice my list typo. :(

--