[GIT pull] timers/core for v5.7

From: Thomas Gleixner
Date: Mon Mar 30 2020 - 10:50:12 EST


Linus,

please pull the latest timers/core branch from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers-core-2020-03-30

up to: 4479730e9263: Revert "clocksource/drivers/timer-probe: Avoid creating dead devices"


timekeeping and timer updates:

Core:

- Consolidation of the vDSO build infrastructure to address the
difficulties of cross-builds for ARM64 compat vDSO libraries by
restricting the exposure of header content to the vDSO build.

This is achieved by splitting out header content into separate
headers. which contain only the minimaly required information which is
necessary to build the vDSO. These new headers are included from the
kernel headers and the vDSO specific files.

- Enhancements to the generic vDSO library allowing more fine grained
control over the compiled in code, further reducing architecture
specific storage and preparing for adopting the generic library by PPC.

- Cleanup and consolidation of the exit related code in posix CPU timers.

- Small cleanups and enhancements here and there

Drivers:

- The obligatory new drivers: Ingenic JZ47xx and X1000 TCU support

- Correct the clock rate of PIT64b global clock

- setup_irq() cleanup

- Preparation for PWM and suspend support for the TI DM timer

- Expand the fttmr010 driver to support ast2600 systems

- The usual small fixes, enhancements and cleanups all over the place

Thanks,

tglx

------------------>
Ahmed S. Darwish (1):
time/sched_clock: Expire timer in hardirq context

Alexander Popov (1):
timer: Improve the comment describing schedule_timeout()

Amol Grover (1):
posix-timers: Pass lockdep expression to RCU lists

Anson Huang (2):
clocksource/drivers/imx-tpm: Remove unused includes
clocksource/drivers/imx-sysctr: Remove unused includes

Christophe Leroy (3):
lib/vdso: Allow fixed clock mode
lib/vdso: Allow architectures to override the ns shift operation
lib/vdso: Allow architectures to provide the vdso data pointer

Claudiu Beznea (1):
clocksource/drivers/timer-microchip-pit64b: Fix rate for gck

Eric W. Biederman (5):
posix-cpu-timers: cpu_clock_sample_group() no longer needs siglock
posix-cpu-timers: Remove unnecessary locking around cpu_clock_sample_group
posix-cpu-timers: Pass the task into arm_timer()
posix-cpu-timers: Store a reference to a pid not a task
posix-cpu-timers: Stop disabling timers on mt-exec

Joel Stanley (3):
clocksource/drivers/fttmr010: Parametrise shutdown
clocksource/drivers/fttmr010: Set interrupt and shutdown
dt-bindings: fttmr010: Add ast2600 compatible

Lokesh Vutla (6):
clocksource/drivers/timer-ti-dm: Do not update counter on updating the period
clocksource/drivers/timer-ti-dm: Convert to SPDX identifier
clocksource/drivers/timer-ti-dm: Implement cpu_pm notifier for context save and restore
clocksource/drivers/timer-ti-dm: Do not update counter on updating the period
clocksource/drivers/timer-ti-dm: Add support to get pwm current status
clocksource/drivers/timer-ti-dm: Enable autoreload in set_pwm

Maarten ter Huurne (1):
clocksource: Add driver for the Ingenic JZ47xx OST

Matheus Castello (1):
clocksource/drivers/owl: Improve owl_timer_init fail messages

Saravana Kannan (1):
clocksource/drivers/timer-probe: Avoid creating dead devices

Suman Anna (1):
clocksource/drivers/timer-ti-dm: Drop bogus omap_dm_timer_of_set_source()

Thomas Gleixner (16):
x86/vdso: Mark the TSC clocksource path likely
ARM: vdso: Remove unused function
lib/vdso: Allow the high resolution parts to be compiled out
ARM: vdso: Compile high resolution parts conditionally
MIPS: vdso: Compile high resolution parts conditionally
clocksource: Cleanup struct clocksource and documentation
x86/vdso: Move VDSO clocksource state tracking to callback
clocksource: Add common vdso clock mode storage
x86/vdso: Use generic VDSO clock mode storage
mips: vdso: Use generic VDSO clock mode storage
ARM/arm64: vdso: Use common vdso clock mode storage
lib/vdso: Cleanup clock mode storage leftovers
lib/vdso: Avoid highres update if clocksource is not VDSO capable
lib/vdso: Move VCLOCK_TIMENS to vdso_clock_modes
Revert "tick/common: Make tick_periodic() check for missing ticks"
Revert "clocksource/drivers/timer-probe: Avoid creating dead devices"

Tony Lindgren (1):
clocksource/drivers/timer-ti-dm: Prepare for using cpuidle

Vincenzo Frascino (29):
clocksource/drivers/arm_arch_timer: Fix vDSO clockmode when vDSO disabled
linux/const.h: Extract common header for vDSO
linux/bits.h: Extract common header for vDSO
linux/limits.h: Extract common header for vDSO
x86: Introduce asm/vdso/clocksource.h
arm: Introduce asm/vdso/clocksource.h
arm64: Introduce asm/vdso/clocksource.h
mips: Introduce asm/vdso/clocksource.h
linux/clocksource.h: Extract common header for vDSO
linux/math64.h: Extract common header for vDSO
linux/time.h: Extract common header for vDSO
linux/time32.h: Extract common header for vDSO
linux/time64.h: Extract common header for vDSO
linux/jiffies.h: Extract common header for vDSO
linux/ktime.h: Extract common header for vDSO
common: Introduce processor.h
scripts: Fix the inclusion order in modpost
linux/elfnote.h: Replace elf.h with UAPI equivalent
arm64: vdso32: Code clean up
arm64: Introduce asm/vdso/processor.h
arm64: vdso: Include common headers in the vdso library
arm64: vdso32: Include common headers in the vdso library
mips: vdso: Enable mips to use common headers
x86/vdso: Enable x86 to use common headers
arm: vdso: Enable arm to use common headers
lib/vdso: Enable common headers
arm64: vdso32: Enable Clang Compilation
um: Fix header inclusion
vdso: Fix clocksource.h macro detection

Waiman Long (1):
tick/common: Make tick_periodic() check for missing ticks

Wen Yang (2):
timekeeping: Prevent 32bit truncation in scale64_check_overflow()
hrtimer: Cast explicitely to u32t in __ktime_divns()

afzal mohammed (2):
clocksource: Replace setup_irq() by request_irq()
clocksource/drivers/timer-cs5535: Request irq with non-NULL dev_id

åçæ (Zhou Yanjie) (2):
dt-bindings: timer: Add X1000 bindings.
clocksource/drivers/ingenic: Add support for TCU of X1000


.../devicetree/bindings/timer/faraday,fttmr010.txt | 1 +
.../devicetree/bindings/timer/ingenic,tcu.txt | 1 +
arch/arm/Kconfig | 1 -
arch/arm/include/asm/clocksource.h | 7 +-
arch/arm/include/asm/cp15.h | 20 +-
arch/arm/include/asm/processor.h | 11 +-
arch/arm/include/asm/vdso/clocksource.h | 8 +
arch/arm/include/asm/vdso/cp15.h | 38 ++++
arch/arm/include/asm/vdso/gettimeofday.h | 22 ++-
arch/arm/include/asm/vdso/processor.h | 22 +++
arch/arm/include/asm/vdso/vsyscall.h | 35 ----
arch/arm64/Kconfig | 1 -
arch/arm64/include/asm/clocksource.h | 4 +-
arch/arm64/include/asm/processor.h | 7 +-
arch/arm64/include/asm/vdso/clocksource.h | 8 +
arch/arm64/include/asm/vdso/compat_gettimeofday.h | 21 +-
arch/arm64/include/asm/vdso/gettimeofday.h | 12 +-
arch/arm64/include/asm/vdso/processor.h | 17 ++
arch/arm64/include/asm/vdso/vsyscall.h | 9 -
arch/arm64/kernel/vdso/vgettimeofday.c | 2 -
arch/arm64/kernel/vdso32/Makefile | 11 ++
arch/arm64/kernel/vdso32/vgettimeofday.c | 14 --
arch/mips/Kconfig | 1 -
arch/mips/include/asm/clocksource.h | 16 +-
arch/mips/include/asm/processor.h | 16 +-
arch/mips/include/asm/vdso/clocksource.h | 9 +
arch/mips/include/asm/vdso/gettimeofday.h | 39 ++--
arch/mips/include/asm/vdso/processor.h | 27 +++
arch/mips/include/asm/vdso/vsyscall.h | 9 -
arch/mips/kernel/csrc-r4k.c | 2 +-
arch/x86/Kconfig | 1 -
arch/x86/entry/vdso/vma.c | 8 +-
arch/x86/include/asm/clocksource.h | 20 +-
arch/x86/include/asm/mshyperv.h | 4 +-
arch/x86/include/asm/processor.h | 12 +-
arch/x86/include/asm/vdso/clocksource.h | 10 +
arch/x86/include/asm/vdso/gettimeofday.h | 6 +-
arch/x86/include/asm/vdso/processor.h | 23 +++
arch/x86/include/asm/vdso/vsyscall.h | 15 --
arch/x86/include/asm/vgtod.h | 12 +-
arch/x86/kernel/kvmclock.c | 9 +-
arch/x86/kernel/pvclock.c | 2 +-
arch/x86/kernel/time.c | 12 +-
arch/x86/kernel/tsc.c | 32 +--
arch/x86/kvm/trace.h | 4 +-
arch/x86/kvm/x86.c | 22 +--
arch/x86/xen/time.c | 36 ++--
drivers/clocksource/Kconfig | 8 +
drivers/clocksource/Makefile | 1 +
drivers/clocksource/arm_arch_timer.c | 12 +-
drivers/clocksource/bcm2835_timer.c | 8 +-
drivers/clocksource/bcm_kona_timer.c | 10 +-
drivers/clocksource/dw_apb_timer.c | 11 +-
drivers/clocksource/exynos_mct.c | 12 +-
drivers/clocksource/hyperv_timer.c | 7 +
drivers/clocksource/ingenic-ost.c | 189 ++++++++++++++++++
drivers/clocksource/ingenic-timer.c | 3 +-
drivers/clocksource/mips-gic-timer.c | 8 +-
drivers/clocksource/mxs_timer.c | 10 +-
drivers/clocksource/nomadik-mtu.c | 11 +-
drivers/clocksource/samsung_pwm_timer.c | 12 +-
drivers/clocksource/timer-atlas7.c | 50 +++--
drivers/clocksource/timer-cs5535.c | 9 +-
drivers/clocksource/timer-efm32.c | 10 +-
drivers/clocksource/timer-fsl-ftm.c | 10 +-
drivers/clocksource/timer-fttmr010.c | 68 +++++--
drivers/clocksource/timer-imx-gpt.c | 10 +-
drivers/clocksource/timer-imx-sysctr.c | 2 -
drivers/clocksource/timer-imx-tpm.c | 2 -
drivers/clocksource/timer-integrator-ap.c | 11 +-
drivers/clocksource/timer-meson6.c | 11 +-
drivers/clocksource/timer-microchip-pit64b.c | 1 +
drivers/clocksource/timer-orion.c | 9 +-
drivers/clocksource/timer-owl.c | 15 +-
drivers/clocksource/timer-prima2.c | 14 +-
drivers/clocksource/timer-pxa.c | 10 +-
drivers/clocksource/timer-sp804.c | 11 +-
drivers/clocksource/timer-ti-dm.c | 217 +++++++++++----------
drivers/clocksource/timer-u300.c | 9 +-
drivers/clocksource/timer-vf-pit.c | 10 +-
drivers/clocksource/timer-vt8500.c | 11 +-
drivers/clocksource/timer-zevio.c | 13 +-
drivers/pwm/pwm-omap-dmtimer.c | 8 +-
include/asm-generic/vdso/vsyscall.h | 14 --
include/clocksource/timer-ti-dm.h | 4 +-
include/linux/bits.h | 2 +-
include/linux/clocksource.h | 93 +++++----
include/linux/const.h | 5 +-
include/linux/dw_apb_timer.h | 1 -
include/linux/elfnote.h | 2 +-
include/linux/jiffies.h | 4 +-
include/linux/ktime.h | 9 +-
include/linux/limits.h | 13 +-
include/linux/math64.h | 20 +-
include/linux/platform_data/dmtimer-omap.h | 6 +-
include/linux/posix-timers.h | 2 +-
include/linux/time.h | 5 +-
include/linux/time32.h | 14 +-
include/linux/time64.h | 10 +-
include/vdso/bits.h | 9 +
include/vdso/clocksource.h | 22 +++
include/vdso/const.h | 10 +
include/vdso/datapage.h | 35 +++-
include/vdso/jiffies.h | 11 ++
include/vdso/ktime.h | 16 ++
include/vdso/limits.h | 19 ++
include/vdso/math64.h | 24 +++
include/vdso/processor.h | 14 ++
include/vdso/time.h | 12 ++
include/vdso/time32.h | 17 ++
include/vdso/time64.h | 14 ++
kernel/exit.c | 11 +-
kernel/time/clocksource.c | 9 +
kernel/time/hrtimer.c | 2 +-
kernel/time/namespace.c | 7 +-
kernel/time/posix-cpu-timers.c | 148 +++++++-------
kernel/time/posix-timers.c | 3 +-
kernel/time/sched_clock.c | 9 +-
kernel/time/timekeeping.c | 3 +-
kernel/time/timer.c | 16 +-
kernel/time/vsyscall.c | 12 +-
lib/vdso/gettimeofday.c | 153 ++++++++++-----
scripts/mod/modpost.c | 6 +-
123 files changed, 1290 insertions(+), 928 deletions(-)
create mode 100644 arch/arm/include/asm/vdso/clocksource.h
create mode 100644 arch/arm/include/asm/vdso/cp15.h
create mode 100644 arch/arm/include/asm/vdso/processor.h
create mode 100644 arch/arm64/include/asm/vdso/clocksource.h
create mode 100644 arch/arm64/include/asm/vdso/processor.h
create mode 100644 arch/mips/include/asm/vdso/clocksource.h
create mode 100644 arch/mips/include/asm/vdso/processor.h
create mode 100644 arch/x86/include/asm/vdso/clocksource.h
create mode 100644 arch/x86/include/asm/vdso/processor.h
create mode 100644 drivers/clocksource/ingenic-ost.c
create mode 100644 include/vdso/bits.h
create mode 100644 include/vdso/clocksource.h
create mode 100644 include/vdso/const.h
create mode 100644 include/vdso/jiffies.h
create mode 100644 include/vdso/ktime.h
create mode 100644 include/vdso/limits.h
create mode 100644 include/vdso/math64.h
create mode 100644 include/vdso/processor.h
create mode 100644 include/vdso/time.h
create mode 100644 include/vdso/time32.h
create mode 100644 include/vdso/time64.h