Linus Torvalds
7f2444d38f
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
...
Pull core timer updates from Thomas Gleixner:
"Timers and timekeeping updates:
- A large overhaul of the posix CPU timer code which is a preparation
for moving the CPU timer expiry out into task work so it can be
properly accounted on the task/process.
An update to the bogus permission checks will come later during the
merge window as feedback was not complete before heading of for
travel.
- Switch the timerqueue code to use cached rbtrees and get rid of the
homebrewn caching of the leftmost node.
- Consolidate hrtimer_init() + hrtimer_init_sleeper() calls into a
single function
- Implement the separation of hrtimers to be forced to expire in hard
interrupt context even when PREEMPT_RT is enabled and mark the
affected timers accordingly.
- Implement a mechanism for hrtimers and the timer wheel to protect
RT against priority inversion and live lock issues when a (hr)timer
which should be canceled is currently executing the callback.
Instead of infinitely spinning, the task which tries to cancel the
timer blocks on a per cpu base expiry lock which is held and
released by the (hr)timer expiry code.
- Enable the Hyper-V TSC page based sched_clock for Hyper-V guests
resulting in faster access to timekeeping functions.
- Updates to various clocksource/clockevent drivers and their device
tree bindings.
- The usual small improvements all over the place"
* 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (101 commits)
posix-cpu-timers: Fix permission check regression
posix-cpu-timers: Always clear head pointer on dequeue
hrtimer: Add a missing bracket and hide `migration_base' on !SMP
posix-cpu-timers: Make expiry_active check actually work correctly
posix-timers: Unbreak CONFIG_POSIX_TIMERS=n build
tick: Mark sched_timer to expire in hard interrupt context
hrtimer: Add kernel doc annotation for HRTIMER_MODE_HARD
x86/hyperv: Hide pv_ops access for CONFIG_PARAVIRT=n
posix-cpu-timers: Utilize timerqueue for storage
posix-cpu-timers: Move state tracking to struct posix_cputimers
posix-cpu-timers: Deduplicate rlimit handling
posix-cpu-timers: Remove pointless comparisons
posix-cpu-timers: Get rid of 64bit divisions
posix-cpu-timers: Consolidate timer expiry further
posix-cpu-timers: Get rid of zero checks
rlimit: Rewrite non-sensical RLIMIT_CPU comment
posix-cpu-timers: Respect INFINITY for hard RTTIME limit
posix-cpu-timers: Switch thread group sampling to array
posix-cpu-timers: Restructure expiry array
posix-cpu-timers: Remove cputime_expires
...
2019-09-17 12:35:15 -07:00
..
acpi_pm.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 243
2019-06-19 17:09:07 +02:00
arc_timer.c
Merge branch 'timers/vdso' into timers/core
2019-07-03 10:50:21 +02:00
arm_arch_timer.c
Merge branch 'timers/vdso' into timers/core
2019-07-03 10:50:21 +02:00
arm_global_timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
armv7m_systick.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
2019-05-30 11:29:22 -07:00
asm9260_timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
bcm2835_timer.c
clocksource/drivers/bcm2835: Switch to SPDX identifier
2018-12-18 22:22:23 +01:00
bcm_kona_timer.c
clksrc-dbx500-prcmu.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197
2019-05-30 11:29:22 -07:00
clksrc_st_lpc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
clps711x-timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
dummy_timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
dw_apb_timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
dw_apb_timer_of.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234
2019-06-19 17:09:07 +02:00
em_sti.c
clocksource: Remove dev_err() usage after platform_get_irq()
2019-08-27 00:31:39 +02:00
exynos_mct.c
Merge branch 'timers/vdso' into timers/core
2019-07-03 10:50:21 +02:00
h8300_timer8.c
h8300_timer16.c
h8300_tpu.c
hyperv_timer.c
clocksource/drivers/hyperv: Enable TSC page clocksource on 32bit
2019-08-23 16:59:54 +02:00
i8253.c
clockevents/drivers/i8253: Add support for PIT shutdown quirk
2018-11-04 11:04:46 +01:00
jcore-pit.c
Kconfig
clocksource/drivers/tcb_clksrc: Register delay timer
2019-08-27 00:31:39 +02:00
Makefile
clocksource/drivers: Make Hyper-V clocksource ISA agnostic
2019-07-03 11:00:59 +02:00
mips-gic-timer.c
clocksource/drivers/mips-gic-timer: Make gic_compare_irqaction static
2019-03-22 22:59:33 +01:00
mmio.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
mps2-timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
mxs_timer.c
clocksource/drivers/mxs_timer: Switch to SPDX identifier
2018-05-23 07:39:09 +02:00
nomadik-mtu.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
numachip.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
2019-06-05 17:36:37 +02:00
renesas-ostm.c
clocksource/drivers/renesas-ostm: Use DIV_ROUND_CLOSEST() helper
2019-08-27 00:31:39 +02:00
samsung_pwm_timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
scx200_hrt.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sh_cmt.c
clocksource/drivers/sh_cmt: Document "cmt-48" as deprecated
2019-08-27 00:31:39 +02:00
sh_mtu2.c
clocksource/drivers/sh_mtu2: Convert to SPDX identifiers
2018-10-03 14:36:55 +02:00
sh_tmu.c
clocksource: Remove dev_err() usage after platform_get_irq()
2019-08-27 00:31:39 +02:00
timer-armada-370-xp.c
clocksource/drivers: Unify the names to timer-* format
2018-10-03 14:37:02 +02:00
timer-atcpit100.c
clocksource/drivers: Set clockevent device cpumask to cpu_possible_mask
2018-07-26 11:26:30 +02:00
timer-atlas7.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4
2019-05-21 11:28:40 +02:00
timer-atmel-pit.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-atmel-st.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
2019-05-30 11:26:35 -07:00
timer-atmel-tcb.c
clocksource/drivers/tcb_clksrc: Register delay timer
2019-08-27 00:31:39 +02:00
timer-cadence-ttc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
2019-06-05 17:36:37 +02:00
timer-cs5535.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
2019-05-30 11:29:53 -07:00
timer-davinci.c
clocksource/drivers/davinci: Add support for clocksource
2019-06-25 20:46:14 +02:00
timer-digicolor.c
timer-efm32.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-fsl-ftm.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
timer-fttmr010.c
clocksource/drivers/fttmr010: Fix invalid interrupt register access
2018-12-18 22:22:23 +01:00
timer-gx6605s.c
clocksource/drivers/c-sky: Add gx6605s SOC system timer
2018-11-02 19:41:12 +01:00
timer-imx-gpt.c
clocksource/drivers/imx-gpt: Remove unnecessary irq protection
2018-12-18 22:22:23 +01:00
timer-imx-sysctr.c
clocksource/drivers/imx-sysctr: Add internal clock divider handle
2019-08-27 00:31:39 +02:00
timer-imx-tpm.c
clocksource/drivers/timer-imx-tpm: Specify clock name for timer-of
2018-12-18 22:22:23 +01:00
timer-integrator-ap.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
2019-05-30 11:26:35 -07:00
timer-ixp4xx.c
clocksource/drivers/ixp4xx: Implement delay timer
2019-06-25 19:49:18 +02:00
timer-keystone.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-lpc32xx.c
clocksource/drivers: Unify the names to timer-* format
2018-10-03 14:37:02 +02:00
timer-mediatek.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157
2019-05-30 11:26:37 -07:00
timer-meson6.c
clocksource/drivers/timer-meson6: Update with SPDX Licence identifier
2019-06-25 19:49:18 +02:00
timer-milbeaut.c
clocksource/drivers/timer-milbeaut: Cleanup common register accesses
2019-05-02 21:55:58 +02:00
timer-mp-csky.c
clocksource/drivers/c-sky: fixup ftrace call-graph panic
2018-12-31 23:17:23 +08:00
timer-npcm7xx.c
clocksource/drivers/npcm: Fix GENMASK and timer operation
2019-08-27 00:31:39 +02:00
timer-nps.c
timer-of.c
clocksource/drivers/timer-of: Do not warn on deferred probe
2019-08-27 00:31:39 +02:00
timer-of.h
timer-orion.c
clocksource/drivers: Unify the names to timer-* format
2018-10-03 14:37:02 +02:00
timer-owl.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
timer-oxnas-rps.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201
2019-05-30 11:29:52 -07:00
timer-pistachio.c
clocksource/drivers: Unify the names to timer-* format
2018-10-03 14:37:02 +02:00
timer-prima2.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4
2019-05-21 11:28:40 +02:00
timer-probe.c
clocksource/drivers: Do not warn on probe defer
2019-08-27 00:31:39 +02:00
timer-pxa.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-qcom.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
2019-06-05 17:36:37 +02:00
timer-rda.c
clocksource/drivers/rda: Add clock driver for RDA8810PL SoC
2018-12-18 22:22:23 +01:00
timer-riscv.c
riscv: don't use the rdtime(h) pseudo-instructions
2019-09-05 01:52:46 -07:00
timer-rockchip.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
timer-sp.h
timer-sp804.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
2019-05-30 11:26:35 -07:00
timer-sprd.c
clocksource/drivers/sprd: Register one always-on timer to compensate suspend time
2018-07-26 11:26:34 +02:00
timer-stm32.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
2019-05-30 11:29:22 -07:00
timer-sun4i.c
clocksource: sun4i: Add missing compatibles
2019-08-27 00:31:39 +02:00
timer-sun5i.c
clocksource/drivers/sun5i: Fail gracefully when clock rate is unavailable
2019-02-23 12:13:45 +01:00
timer-tango-xtal.c
clocksource/drivers/tango-xtal: Rename the file for consistency
2019-02-23 12:13:45 +01:00
timer-tegra.c
clocksource/drivers/tegra: Set up maximum-ticks limit properly
2019-06-25 19:49:18 +02:00
timer-ti-32k.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 341
2019-06-05 17:37:07 +02:00
timer-ti-dm.c
clocksource/drivers/timer-ti-dm: Change to new style declaration
2019-05-24 15:51:30 +02:00
timer-u300.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
2019-05-30 11:29:22 -07:00
timer-versatile.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
2019-05-30 11:26:41 -07:00
timer-vf-pit.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
timer-vt8500.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
2019-05-30 11:26:35 -07:00
timer-zevio.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00