* [GIT pull] irq/core for v5.7
@ 2020-03-30 14:47 Thomas Gleixner
2020-03-30 14:47 ` [GIT pull] smp/core " Thomas Gleixner
` (6 more replies)
0 siblings, 7 replies; 14+ messages in thread
From: Thomas Gleixner @ 2020-03-30 14:47 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, x86
Linus,
please pull the latest irq/core branch from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-core-2020-03-30
up to: 8a13b02a010a: Merge tag 'irqchip-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core
Updates for the interrupt subsystem:
Treewide:
- Cleanup of setup_irq() which is not longer required because the
memory allocator is available early. Most cleanup changes come
through the various maintainer trees, so the final removal of
setup_irq() is postponed towards the end of the merge window.
Core:
- Protection against unsafe invocation of interrupt handlers and unsafe
interrupt injection including a fixup of the offending PCI/AER error
injection mechanism.
Invoking interrupt handlers from arbitrary contexts, i.e. outside of
an actual interrupt, can cause inconsistent state on the fragile
x86 interrupt affinity changing hardware trainwreck.
Drivers:
- Second wave of support for the new ARM GICv4.1
- Multi-instance support for Xilinx and PLIC interrupt controllers
- CPU-Hotplug support for PLIC
- The obligatory new driver for X1000 TCU
- Enhancements, cleanups and fixes all over the place
Thanks,
tglx
------------------>
Alexander Sverdlin (1):
genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()
Alexandre Torgue (2):
irqchip/stm32: Add irq retrigger support
pinctrl: stm32: Add level interrupt support to gpio irq chip
Anson Huang (1):
irqchip: Add COMPILE_TEST support for IMX_INTMUX
Atish Patra (2):
irqchip/sifive-plic: Enable/Disable external interrupts upon cpu online/offline
irqchip/sifive-plic: Add support for multiple PLICs
Geert Uytterhoeven (1):
irqchip/renesas-intc-irqpin: Restore devm_ioremap() alignment
Gustavo A. R. Silva (2):
irqchip/irq-bcm7038-l1: Replace zero-length array with flexible-array member
irqchip/qcom-irq-combiner: Replace zero-length array with flexible-array member
Hans de Goede (1):
x86: Select HARDIRQS_SW_RESEND on x86
Heyi Guo (2):
irqchip/gic-v3-its: Fix access width for gicr_syncr
irqchip/gic-v4: Use Inner-Shareable attributes for virtual pending tables
Linus Walleij (1):
irqchip: vic: Support cascaded VIC in device tree
Lukas Wunner (1):
irqchip/bcm2835: Quiesce IRQs left enabled by bootloader
Marc Zyngier (20):
irqchip/gic-v3-its: Probe ITS page size for all GITS_BASERn registers
irqchip/atmel-aic: Fix irq_retrigger callback return value
irqchip/atmel-aic5: Fix irq_retrigger callback return value
ARM: sa1111: Fix irq_retrigger callback return value
irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency
irqchip/gic-v3: Use SGIs without active state if offered
irqchip/gic-v4.1: Skip absent CPUs while iterating over redistributors
irqchip/gic-v4.1: Ensure mutual exclusion between vPE affinity change and RD access
irqchip/gic-v4.1: Ensure mutual exclusion betwen invalidations on the same RD
irqchip/gic-v4.1: Advertise support v4.1 to KVM
irqchip/gic-v4.1: Map the ITS SGIR register page
irqchip/gic-v4.1: Plumb skeletal VSGI irqchip
irqchip/gic-v4.1: Add initial SGI configuration
irqchip/gic-v4.1: Plumb mask/unmask SGI callbacks
irqchip/gic-v4.1: Plumb get/set_irqchip_state SGI callbacks
irqchip/gic-v4.1: Plumb set_vcpu_affinity SGI callbacks
irqchip/gic-v4.1: Move doorbell management to the GICv4 abstraction layer
irqchip/gic-v4.1: Add VSGI allocation/teardown
irqchip/gic-v4.1: Add VSGI property setup
irqchip/gic-v4.1: Eagerly vmap vPEs
Marek Vasut (1):
irqchip/stm32: Retrigger both in eoi and unmask callbacks
Michal Simek (2):
irqchip/xilinx: Fill error code when irq domain registration fails
irqchip/xilinx: Enable generic irq multi handler
Mubin Sayyed (2):
irqchip/xilinx: Add support for multiple instances
irqchip/xilinx: Do not call irq_set_default_host()
Sungbo Eo (2):
irqchip/versatile-fpga: Handle chained IRQs properly
irqchip/versatile-fpga: Apply clear-mask earlier
Thomas Gleixner (7):
genirq/debugfs: Add missing sanity checks to interrupt injection
genirq: Add protection against unsafe usage of generic_handle_irq()
x86/apic/vector: Force interupt handler invocation to irq context
genirq: Add return value to check_irq_resend()
genirq: Sanitize state handling in check_irq_resend()
genirq: Provide interrupt injection mechanism
PCI/AER: Fix the broken interrupt injection
Zenghui Yu (1):
irqchip/gic-v4.1: Wait for completion of redistributor's INVALL operation
afzal mohammed (6):
irqchip: Replace setup_irq() by request_irq()
alpha: Replace setup_irq() by request_irq()
c6x: Replace setup_irq() by request_irq()
hexagon: Replace setup_irq() by request_irq()
sh: Replace setup_irq() by request_irq()
unicore32: Replace setup_irq() by request_irq()
luanshi (2):
irqdomain: Fix function documentation of __irq_domain_alloc_fwnode()
irqchip/gic-v3: Move irq_domain_update_bus_token to after checking for NULL domain
周琰杰 (Zhou Yanjie) (1):
irqchip/ingenic: Add support for TCU of X1000.
arch/alpha/kernel/irq_alpha.c | 29 +-
arch/alpha/kernel/irq_i8259.c | 8 +-
arch/alpha/kernel/irq_impl.h | 7 +-
arch/alpha/kernel/irq_pyxis.c | 3 +-
arch/alpha/kernel/sys_alcor.c | 3 +-
arch/alpha/kernel/sys_cabriolet.c | 3 +-
arch/alpha/kernel/sys_eb64p.c | 3 +-
arch/alpha/kernel/sys_marvel.c | 2 +-
arch/alpha/kernel/sys_miata.c | 6 +-
arch/alpha/kernel/sys_ruffian.c | 3 +-
arch/alpha/kernel/sys_rx164.c | 3 +-
arch/alpha/kernel/sys_sx164.c | 3 +-
arch/alpha/kernel/sys_wildfire.c | 7 +-
arch/alpha/kernel/time.c | 6 +-
arch/arm/common/sa1111.c | 7 +-
arch/c6x/platforms/timer64.c | 11 +-
arch/hexagon/kernel/smp.c | 22 +-
arch/hexagon/kernel/time.c | 11 +-
arch/microblaze/Kconfig | 2 +
arch/microblaze/include/asm/irq.h | 3 -
arch/microblaze/kernel/irq.c | 21 +-
arch/riscv/kernel/traps.c | 2 +-
arch/sh/boards/mach-cayman/irq.c | 18 +-
arch/sh/drivers/dma/dma-pvr2.c | 9 +-
arch/unicore32/kernel/time.c | 11 +-
arch/x86/Kconfig | 1 +
arch/x86/kernel/apic/vector.c | 6 +
drivers/irqchip/Kconfig | 2 +-
drivers/irqchip/irq-atmel-aic.c | 2 +-
drivers/irqchip/irq-atmel-aic5.c | 2 +-
drivers/irqchip/irq-bcm2835.c | 15 +
drivers/irqchip/irq-bcm7038-l1.c | 2 +-
drivers/irqchip/irq-gic-v3-its.c | 532 ++++++++++++++++++++++++++----
drivers/irqchip/irq-gic-v3.c | 16 +-
drivers/irqchip/irq-gic-v4.c | 134 +++++++-
drivers/irqchip/irq-i8259.c | 16 +-
drivers/irqchip/irq-ingenic-tcu.c | 1 +
drivers/irqchip/irq-ingenic.c | 9 +-
drivers/irqchip/irq-renesas-intc-irqpin.c | 2 +-
drivers/irqchip/irq-sifive-plic.c | 119 +++++--
drivers/irqchip/irq-stm32-exti.c | 14 +-
drivers/irqchip/irq-versatile-fpga.c | 18 +-
drivers/irqchip/irq-vic.c | 9 +-
drivers/irqchip/irq-xilinx-intc.c | 123 ++++---
drivers/irqchip/qcom-irq-combiner.c | 2 +-
drivers/pci/pcie/Kconfig | 1 +
drivers/pci/pcie/aer_inject.c | 6 +-
drivers/pinctrl/stm32/pinctrl-stm32.c | 57 +++-
include/kvm/arm_vgic.h | 1 +
include/linux/cpuhotplug.h | 1 +
include/linux/interrupt.h | 2 +
include/linux/irq.h | 13 +
include/linux/irqchip/arm-gic-common.h | 2 +
include/linux/irqchip/arm-gic-v3.h | 23 +-
include/linux/irqchip/arm-gic-v4.h | 25 +-
kernel/irq/Kconfig | 5 +
kernel/irq/chip.c | 2 +-
kernel/irq/debugfs.c | 28 +-
kernel/irq/internals.h | 10 +-
kernel/irq/irqdesc.c | 6 +
kernel/irq/irqdomain.c | 14 +-
kernel/irq/resend.c | 143 ++++++--
virt/kvm/arm/vgic/vgic-v3.c | 4 +-
virt/kvm/arm/vgic/vgic-v4.c | 34 +-
64 files changed, 1185 insertions(+), 420 deletions(-)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [GIT pull] smp/core for v5.7
2020-03-30 14:47 [GIT pull] irq/core for v5.7 Thomas Gleixner
@ 2020-03-30 14:47 ` Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] timers/core " Thomas Gleixner
` (5 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Thomas Gleixner @ 2020-03-30 14:47 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, x86
Linus,
please pull the latest smp/core branch from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git smp-core-2020-03-30
up to: e98eac6ff1b4: cpu/hotplug: Ignore pm_wakeup_pending() for disable_nonboot_cpus()
CPU (hotplug) updates:
- Support for locked CSD objects in smp_call_function_single_async()
which allows to simplify callsites in the scheduler core and MIPS
- Treewide consolidation of CPU hotplug functions which ensures the
consistency between the sysfs interface and kernel state. The low level
functions cpu_up/down() are now confined to the core code and not
longer accessible from random code.
Thanks,
tglx
------------------>
Peter Xu (3):
smp: Allow smp_call_function_single_async() to insert locked csd
MIPS: smp: Remove tick_broadcast_count
sched/core: Remove rq.hrtick_csd_pending
Qais Yousef (18):
cpu/hotplug: Add new {add,remove}_cpu() functions
cpu/hotplug: Create a new function to shutdown nonboot cpus
ia64: Replace cpu_down() with smp_shutdown_nonboot_cpus()
ARM: Don't use disable_nonboot_cpus()
ARM: Use reboot_cpu instead of hardcoding it to 0
arm64: Don't use disable_nonboot_cpus()
arm64: Use reboot_cpu instead of hardconding it to 0
cpu/hotplug: Provide bringup_hibernate_cpu()
arm64: hibernate: Use bringup_hibernate_cpu()
x86/smp: Replace cpu_up/down() with add/remove_cpu()
powerpc: Replace cpu_up/down() with add/remove_cpu()
sparc: Replace cpu_up/down() with add/remove_cpu()
parisc: Replace cpu_up/down() with add/remove_cpu()
xen/cpuhotplug: Replace cpu_up/down() with device_online/offline()
firmware: psci: Replace cpu_up/down() with add/remove_cpu()
torture: Replace cpu_up/down() with add/remove_cpu()
cpu/hotplug: Move bringup of secondary CPUs out of smp_init()
cpu/hotplug: Hide cpu_up/down()
Thomas Gleixner (1):
cpu/hotplug: Ignore pm_wakeup_pending() for disable_nonboot_cpus()
arch/arm/kernel/reboot.c | 4 +-
arch/arm64/kernel/hibernate.c | 13 ++--
arch/arm64/kernel/process.c | 4 +-
arch/ia64/kernel/process.c | 8 +-
arch/mips/kernel/smp.c | 9 +--
arch/parisc/kernel/processor.c | 2 +-
arch/powerpc/kexec/core_64.c | 2 +-
arch/sparc/kernel/ds.c | 4 +-
arch/x86/kernel/topology.c | 22 ++----
arch/x86/mm/mmio-mod.c | 4 +-
arch/x86/xen/smp.c | 2 +-
drivers/base/cpu.c | 4 +-
drivers/firmware/psci/psci_checker.c | 4 +-
drivers/xen/cpu_hotplug.c | 2 +-
include/linux/cpu.h | 22 ++++--
kernel/cpu.c | 143 +++++++++++++++++++++++++++++++----
kernel/sched/core.c | 9 +--
kernel/sched/sched.h | 1 -
kernel/smp.c | 23 +++---
kernel/torture.c | 9 ++-
20 files changed, 194 insertions(+), 97 deletions(-)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [GIT pull] timers/core for v5.7
2020-03-30 14:47 [GIT pull] irq/core for v5.7 Thomas Gleixner
2020-03-30 14:47 ` [GIT pull] smp/core " Thomas Gleixner
@ 2020-03-30 14:47 ` Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] timers/nohz " Thomas Gleixner
` (4 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Thomas Gleixner @ 2020-03-30 14:47 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, x86
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
^ permalink raw reply [flat|nested] 14+ messages in thread
* [GIT pull] timers/nohz for v5.7
2020-03-30 14:47 [GIT pull] irq/core for v5.7 Thomas Gleixner
2020-03-30 14:47 ` [GIT pull] smp/core " Thomas Gleixner
2020-03-30 14:47 ` [GIT pull] timers/core " Thomas Gleixner
@ 2020-03-30 14:47 ` Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] x86/entry " Thomas Gleixner
` (3 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Thomas Gleixner @ 2020-03-30 14:47 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, x86
Linus,
please pull the latest timers/nohz branch from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers-nohz-2020-03-30
up to: e4970c9c54d7: Merge branch 'arch/nohz' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/nohz
NOHZ full updates:
- Remove TIF_NOHZ from 3 architectures
These architectures use a static key to decide whether context tracking
needs to be invoked and the TIF_NOHZ flag just causes a pointless
slowpath execution for nothing.
Thanks,
tglx
------------------>
Frederic Weisbecker (4):
context-tracking: Introduce CONFIG_HAVE_TIF_NOHZ
x86: Remove TIF_NOHZ
arm: Remove TIF_NOHZ
arm64: Remove TIF_NOHZ
Thomas Gleixner (1):
x86/entry: Remove _TIF_NOHZ from _TIF_WORK_SYSCALL_ENTRY
arch/Kconfig | 16 +++++++++++-----
arch/arm/include/asm/thread_info.h | 1 -
arch/arm64/include/asm/thread_info.h | 4 +---
arch/mips/Kconfig | 1 +
arch/powerpc/Kconfig | 1 +
arch/sparc/Kconfig | 1 +
arch/x86/include/asm/thread_info.h | 10 ++--------
kernel/context_tracking.c | 2 ++
8 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/arch/Kconfig b/arch/Kconfig
index 98de654b79b3..dbf420a9f87b 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -540,11 +540,17 @@ config HAVE_CONTEXT_TRACKING
help
Provide kernel/user boundaries probes necessary for subsystems
that need it, such as userspace RCU extended quiescent state.
- Syscalls need to be wrapped inside user_exit()-user_enter() through
- the slow path using TIF_NOHZ flag. Exceptions handlers must be
- wrapped as well. Irqs are already protected inside
- rcu_irq_enter/rcu_irq_exit() but preemption or signal handling on
- irq exit still need to be protected.
+ Syscalls need to be wrapped inside user_exit()-user_enter(), either
+ optimized behind static key or through the slow path using TIF_NOHZ
+ flag. Exceptions handlers must be wrapped as well. Irqs are already
+ protected inside rcu_irq_enter/rcu_irq_exit() but preemption or signal
+ handling on irq exit still need to be protected.
+
+config HAVE_TIF_NOHZ
+ bool
+ help
+ Arch relies on TIF_NOHZ and syscall slow path to implement context
+ tracking calls to user_enter()/user_exit().
config HAVE_VIRT_CPU_ACCOUNTING
bool
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
index 0d0d5178e2c3..3609a6980c34 100644
--- a/arch/arm/include/asm/thread_info.h
+++ b/arch/arm/include/asm/thread_info.h
@@ -141,7 +141,6 @@ extern int vfp_restore_user_hwstate(struct user_vfp *,
#define TIF_SYSCALL_TRACEPOINT 6 /* syscall tracepoint instrumentation */
#define TIF_SECCOMP 7 /* seccomp syscall filtering active */
-#define TIF_NOHZ 12 /* in adaptive nohz mode */
#define TIF_USING_IWMMXT 17
#define TIF_MEMDIE 18 /* is terminating due to OOM killer */
#define TIF_RESTORE_SIGMASK 20
diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h
index f0cec4160136..512174a8e789 100644
--- a/arch/arm64/include/asm/thread_info.h
+++ b/arch/arm64/include/asm/thread_info.h
@@ -63,7 +63,6 @@ void arch_release_task_struct(struct task_struct *tsk);
#define TIF_FOREIGN_FPSTATE 3 /* CPU's FP state is not current's */
#define TIF_UPROBE 4 /* uprobe breakpoint or singlestep */
#define TIF_FSCHECK 5 /* Check FS is USER_DS on return */
-#define TIF_NOHZ 7
#define TIF_SYSCALL_TRACE 8 /* syscall trace active */
#define TIF_SYSCALL_AUDIT 9 /* syscall auditing */
#define TIF_SYSCALL_TRACEPOINT 10 /* syscall tracepoint for ftrace */
@@ -83,7 +82,6 @@ void arch_release_task_struct(struct task_struct *tsk);
#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
#define _TIF_FOREIGN_FPSTATE (1 << TIF_FOREIGN_FPSTATE)
-#define _TIF_NOHZ (1 << TIF_NOHZ)
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
#define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
@@ -100,7 +98,7 @@ void arch_release_task_struct(struct task_struct *tsk);
#define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
_TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \
- _TIF_NOHZ | _TIF_SYSCALL_EMU)
+ _TIF_SYSCALL_EMU)
#define INIT_THREAD_INFO(tsk) \
{ \
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 797d7f1ad5fe..2589d4760e45 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -51,6 +51,7 @@ config MIPS
select HAVE_ASM_MODVERSIONS
select HAVE_CBPF_JIT if !64BIT && !CPU_MICROMIPS
select HAVE_CONTEXT_TRACKING
+ select HAVE_TIF_NOHZ
select HAVE_COPY_THREAD_TLS
select HAVE_C_RECORDMCOUNT
select HAVE_DEBUG_KMEMLEAK
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 497b7d0b2d7e..6f40af294685 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -182,6 +182,7 @@ config PPC
select HAVE_STACKPROTECTOR if PPC64 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r13)
select HAVE_STACKPROTECTOR if PPC32 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r2)
select HAVE_CONTEXT_TRACKING if PPC64
+ select HAVE_TIF_NOHZ if PPC64
select HAVE_COPY_THREAD_TLS
select HAVE_DEBUG_KMEMLEAK
select HAVE_DEBUG_STACKOVERFLOW
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index c1dd6dd642f4..9cc9ab04bd99 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -71,6 +71,7 @@ config SPARC64
select HAVE_FTRACE_MCOUNT_RECORD
select HAVE_SYSCALL_TRACEPOINTS
select HAVE_CONTEXT_TRACKING
+ select HAVE_TIF_NOHZ
select HAVE_DEBUG_KMEMLEAK
select IOMMU_HELPER
select SPARSE_IRQ
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
index cf4327986e98..384cdde10680 100644
--- a/arch/x86/include/asm/thread_info.h
+++ b/arch/x86/include/asm/thread_info.h
@@ -92,7 +92,6 @@ struct thread_info {
#define TIF_NOCPUID 15 /* CPUID is not accessible in userland */
#define TIF_NOTSC 16 /* TSC is not accessible in userland */
#define TIF_IA32 17 /* IA32 compatibility process */
-#define TIF_NOHZ 19 /* in adaptive nohz mode */
#define TIF_MEMDIE 20 /* is terminating due to OOM killer */
#define TIF_POLLING_NRFLAG 21 /* idle is polling for TIF_NEED_RESCHED */
#define TIF_IO_BITMAP 22 /* uses I/O bitmap */
@@ -122,7 +121,6 @@ struct thread_info {
#define _TIF_NOCPUID (1 << TIF_NOCPUID)
#define _TIF_NOTSC (1 << TIF_NOTSC)
#define _TIF_IA32 (1 << TIF_IA32)
-#define _TIF_NOHZ (1 << TIF_NOHZ)
#define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG)
#define _TIF_IO_BITMAP (1 << TIF_IO_BITMAP)
#define _TIF_FORCED_TF (1 << TIF_FORCED_TF)
@@ -133,14 +131,10 @@ struct thread_info {
#define _TIF_X32 (1 << TIF_X32)
#define _TIF_FSCHECK (1 << TIF_FSCHECK)
-/*
- * work to do in syscall_trace_enter(). Also includes TIF_NOHZ for
- * enter_from_user_mode()
- */
+/* Work to do before invoking the actual syscall. */
#define _TIF_WORK_SYSCALL_ENTRY \
(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_AUDIT | \
- _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \
- _TIF_NOHZ)
+ _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT)
/* flags to check in __switch_to() */
#define _TIF_WORK_CTXSW_BASE \
diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
index 0296b4bda8f1..ce430885c26c 100644
--- a/kernel/context_tracking.c
+++ b/kernel/context_tracking.c
@@ -198,11 +198,13 @@ void __init context_tracking_cpu_set(int cpu)
if (initialized)
return;
+#ifdef CONFIG_HAVE_TIF_NOHZ
/*
* Set TIF_NOHZ to init/0 and let it propagate to all tasks through fork
* This assumes that init is the only task at this early boot stage.
*/
set_tsk_thread_flag(&init_task, TIF_NOHZ);
+#endif
WARN_ON_ONCE(!tasklist_empty());
initialized = true;
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [GIT pull] x86/entry for v5.7
2020-03-30 14:47 [GIT pull] irq/core for v5.7 Thomas Gleixner
` (2 preceding siblings ...)
2020-03-30 14:47 ` [GIT pull] timers/nohz " Thomas Gleixner
@ 2020-03-30 14:47 ` Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] x86/splitlock " Thomas Gleixner
` (2 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Thomas Gleixner @ 2020-03-30 14:47 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, x86
Linus,
please pull the latest x86/entry branch from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-entry-2020-03-30
up to: 290a4474d019: x86/entry: Fix build error x86 with !CONFIG_POSIX_TIMERS
x86 entry code updates:
- Convert the 32bit syscalls to be pt_regs based which removes the
requirement to push all 6 potential arguments onto the stack and
consolidates the interface with the 64bit variant
- The first small portion of the exception and syscall related entry
code consolidation which aims to address the recently discovered
issues vs. RCU, int3, NMI and some other exceptions which can
interrupt any context. The bulk of the changes is still work in
progress and aimed for 5.8.
- A few lockdep namespace cleanups which have been applied into this
branch to keep the prerequisites for the ongoing work confined.
Thanks,
tglx
------------------>
Andy Lutomirski (2):
x86/mce: Disable tracing and kprobes on do_machine_check()
x86/traps: Stop using ist_enter/exit() in do_int3()
Brian Gerst (19):
x86/entry: Refactor SYSCALL_DEFINEx macros
x86/entry: Refactor SYSCALL_DEFINE0 macros
x86/entry: Refactor COND_SYSCALL macros
x86/entry: Refactor SYS_NI macros
x86/entry/64: Use syscall wrappers for x32_rt_sigreturn
x86/entry/64: Move sys_ni_syscall stub to common.c
x86/entry/64: Split X32 syscall table into its own file
x86/entry: Move max syscall number calculation to syscallhdr.sh
x86/entry/64: Remove ptregs qualifier from syscall table
x86/entry: Remove syscall qualifier support
x86/entry/64: Add __SYSCALL_COMMON()
x86/entry: Remove ABI prefixes from functions in syscall tables
x86/entry/32: Clean up syscall_32.tbl
x86/entry/32: Rename 32-bit specific syscalls
x86/entry/32: Use IA32-specific wrappers for syscalls taking 64-bit arguments
x86/entry/32: Enable pt_regs based syscalls
x86/entry: Drop asmlinkage from syscalls
x86: Remove unneeded includes
x86/entry: Fix build error x86 with !CONFIG_POSIX_TIMERS
Peter Zijlstra (3):
x86/entry: Rename ___preempt_schedule
lockdep: Rename trace_softirqs_{on,off}()
lockdep: Rename trace_{hard,soft}{irq_context,irqs_enabled}()
Thomas Gleixner (11):
x86/entry/32: Add missing ASM_CLAC to general_protection entry
x86/entry/32: Force MCE through do_mce()
x86/traps: Remove pointless irq enable from do_spurious_interrupt_bug()
x86/traps: Document do_spurious_interrupt_bug()
x86/traps: Remove redundant declaration of do_double_fault()
x86/irq: Remove useless return value from do_IRQ()
x86/entry/entry_32: Route int3 through common_exception
x86/entry/32: Remove the 0/-1 distinction from exception entries
x86/entry/32: Remove unused label restore_nocheck
x86/entry/64: Trace irqflags unconditionally as ON when returning to user space
lockdep: Rename trace_hardirq_{enter,exit}()
arch/x86/Kconfig | 2 +-
arch/x86/entry/Makefile | 1 +
arch/x86/entry/common.c | 18 +-
arch/x86/entry/entry_32.S | 23 +-
arch/x86/entry/entry_64.S | 4 +-
arch/x86/entry/syscall_32.c | 19 +-
arch/x86/entry/syscall_64.c | 39 +-
arch/x86/entry/syscall_x32.c | 29 +
arch/x86/entry/syscalls/syscall_32.tbl | 818 ++++++++++++++--------------
arch/x86/entry/syscalls/syscall_64.tbl | 740 ++++++++++++-------------
arch/x86/entry/syscalls/syscallhdr.sh | 7 +
arch/x86/entry/syscalls/syscalltbl.sh | 44 +-
arch/x86/entry/thunk_32.S | 8 +-
arch/x86/entry/thunk_64.S | 8 +-
arch/x86/entry/vdso/vdso32/vclock_gettime.c | 1 +
arch/x86/ia32/Makefile | 2 +-
arch/x86/include/asm/irq.h | 2 +-
arch/x86/include/asm/mce.h | 3 -
arch/x86/include/asm/preempt.h | 8 +-
arch/x86/include/asm/sighandling.h | 5 -
arch/x86/include/asm/syscall.h | 11 +-
arch/x86/include/asm/syscall_wrapper.h | 287 +++++-----
arch/x86/include/asm/syscalls.h | 34 --
arch/x86/include/asm/traps.h | 17 +-
arch/x86/include/asm/unistd.h | 7 +
arch/x86/kernel/Makefile | 2 +
arch/x86/kernel/asm-offsets_32.c | 9 -
arch/x86/kernel/asm-offsets_64.c | 36 --
arch/x86/kernel/cpu/mce/core.c | 12 +-
arch/x86/kernel/cpu/mce/internal.h | 3 +
arch/x86/kernel/irq.c | 3 +-
arch/x86/kernel/ldt.c | 1 -
arch/x86/kernel/process.c | 1 -
arch/x86/kernel/process_32.c | 1 -
arch/x86/kernel/process_64.c | 1 -
arch/x86/kernel/signal.c | 4 +-
arch/x86/{ia32 => kernel}/sys_ia32.c | 143 ++---
arch/x86/kernel/sys_x86_64.c | 1 -
arch/x86/kernel/traps.c | 41 +-
arch/x86/um/Makefile | 1 +
arch/x86/um/sys_call_table_32.c | 6 +-
arch/x86/um/sys_call_table_64.c | 9 +-
arch/x86/um/user-offsets.c | 15 -
include/linux/hardirq.h | 8 +-
include/linux/irqflags.h | 34 +-
kernel/locking/lockdep.c | 12 +-
kernel/softirq.c | 15 +-
tools/include/linux/irqflags.h | 12 +-
48 files changed, 1206 insertions(+), 1301 deletions(-)
create mode 100644 arch/x86/entry/syscall_x32.c
rename arch/x86/{ia32 => kernel}/sys_ia32.c (78%)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [GIT pull] x86/splitlock for v5.7
2020-03-30 14:47 [GIT pull] irq/core for v5.7 Thomas Gleixner
` (3 preceding siblings ...)
2020-03-30 14:47 ` [GIT pull] x86/entry " Thomas Gleixner
@ 2020-03-30 14:47 ` Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] x86/timers " Thomas Gleixner
2020-03-31 3:00 ` [GIT pull] irq/core " pr-tracker-bot
6 siblings, 1 reply; 14+ messages in thread
From: Thomas Gleixner @ 2020-03-30 14:47 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, x86
Linus,
please pull the latest x86/splitlock branch from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-splitlock-2020-03-30
up to: a6a60741035b: x86/split_lock: Avoid runtime reads of the TEST_CTRL MSR
Support for "split lock" detection:
- Atomic operations (lock prefixed instructions) which span two cache
lines have to acquire the global bus lock. This is at least 1k cycles
slower than an atomic operation within a cache line and disrupts
performance on other cores. Aside of performance disruption this is
a unpriviledged form of DoS.
Some newer CPUs have the capability to raise an #AC trap when such an
operation is attempted. The detection is by default enabled in warning
mode which will warn once when a user space application is caught. A
command line option allows to disable the detection or to select fatal
mode which will terminate offending applications with SIGBUS.
Thanks,
tglx
------------------>
Peter Zijlstra (Intel) (1):
x86/split_lock: Enable split lock detection by kernel
Xiaoyao Li (2):
x86/split_lock: Rework the initialization flow of split lock detection
x86/split_lock: Avoid runtime reads of the TEST_CTRL MSR
Documentation/admin-guide/kernel-parameters.txt | 22 +++
arch/x86/include/asm/cpu.h | 12 ++
arch/x86/include/asm/cpufeatures.h | 2 +
arch/x86/include/asm/msr-index.h | 9 ++
arch/x86/include/asm/thread_info.h | 4 +-
arch/x86/kernel/cpu/common.c | 2 +
arch/x86/kernel/cpu/intel.c | 183 ++++++++++++++++++++++++
arch/x86/kernel/process.c | 3 +
arch/x86/kernel/traps.c | 24 +++-
9 files changed, 258 insertions(+), 3 deletions(-)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [GIT pull] x86/timers for v5.7
2020-03-30 14:47 [GIT pull] irq/core for v5.7 Thomas Gleixner
` (4 preceding siblings ...)
2020-03-30 14:47 ` [GIT pull] x86/splitlock " Thomas Gleixner
@ 2020-03-30 14:47 ` Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-31 3:00 ` [GIT pull] irq/core " pr-tracker-bot
6 siblings, 1 reply; 14+ messages in thread
From: Thomas Gleixner @ 2020-03-30 14:47 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, x86
Linus,
please pull the latest x86/timers branch from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-timers-2020-03-30
up to: fac01d11722c: x86/tsc_msr: Make MSR derived TSC frequency more accurate
x86 timer updates:
- A series of commits to make the MSR derived CPU and TSC frequency more
accurate.
It turned out that the frequency tables which have been taken from the
SDM are inaccurate because the SDM provides truncated and rounded
values, e.g. 83.3Mhz (83.3333...) or 116.7Mhz (116.6666...).
This causes time drift in the range of ~1 second per hour
(20-30 seconds per day). On some of these SoCs it's not possible to
recalibrate the TSC because there is no reference (PIT, HPET) available.
With some reverse engineering it was established that the possible
frequencies are derived from the base clock with fixed multiplier /
divider pairs.
For the CPU models which have a known crystal frequency the kernel now
uses multiplier / divider pairs which bring the frequencies closer to
reality and fix the observed time drift issues.
Thanks,
tglx
------------------>
Hans de Goede (3):
x86/tsc_msr: Use named struct initializers
x86/tsc_msr: Fix MSR_FSB_FREQ mask for Cherry Trail devices
x86/tsc_msr: Make MSR derived TSC frequency more accurate
arch/x86/kernel/tsc_msr.c | 128 ++++++++++++++++++++++++++++++++++++++++------
1 file changed, 112 insertions(+), 16 deletions(-)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [GIT pull] irq/core for v5.7
2020-03-30 14:47 [GIT pull] irq/core for v5.7 Thomas Gleixner
` (5 preceding siblings ...)
2020-03-30 14:47 ` [GIT pull] x86/timers " Thomas Gleixner
@ 2020-03-31 3:00 ` pr-tracker-bot
6 siblings, 0 replies; 14+ messages in thread
From: pr-tracker-bot @ 2020-03-31 3:00 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: Linus Torvalds, linux-kernel, x86
The pull request you sent on Mon, 30 Mar 2020 14:47:09 -0000:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-core-2020-03-30
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/2d385336afcc43732aef1d51528c03f177ecd54e
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [GIT pull] smp/core for v5.7
2020-03-30 14:47 ` [GIT pull] smp/core " Thomas Gleixner
@ 2020-03-31 3:00 ` pr-tracker-bot
0 siblings, 0 replies; 14+ messages in thread
From: pr-tracker-bot @ 2020-03-31 3:00 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: Linus Torvalds, linux-kernel, x86
The pull request you sent on Mon, 30 Mar 2020 14:47:10 -0000:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git smp-core-2020-03-30
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/992a1a3b45b5c0b6e69ecc2a3f32b0d02da28d58
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [GIT pull] x86/splitlock for v5.7
2020-03-30 14:47 ` [GIT pull] x86/splitlock " Thomas Gleixner
@ 2020-03-31 3:00 ` pr-tracker-bot
0 siblings, 0 replies; 14+ messages in thread
From: pr-tracker-bot @ 2020-03-31 3:00 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: Linus Torvalds, linux-kernel, x86
The pull request you sent on Mon, 30 Mar 2020 14:47:15 -0000:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-splitlock-2020-03-30
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/2853d5fafb1e21707e89aa2e227c90bb2c1ea4a9
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [GIT pull] x86/entry for v5.7
2020-03-30 14:47 ` [GIT pull] x86/entry " Thomas Gleixner
@ 2020-03-31 3:00 ` pr-tracker-bot
0 siblings, 0 replies; 14+ messages in thread
From: pr-tracker-bot @ 2020-03-31 3:00 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: Linus Torvalds, linux-kernel, x86
The pull request you sent on Mon, 30 Mar 2020 14:47:14 -0000:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-entry-2020-03-30
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/d5f744f9a2ac9ca6d5baf72e97ce6dc4c2f19fe4
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [GIT pull] timers/core for v5.7
2020-03-30 14:47 ` [GIT pull] timers/core " Thomas Gleixner
@ 2020-03-31 3:00 ` pr-tracker-bot
0 siblings, 0 replies; 14+ messages in thread
From: pr-tracker-bot @ 2020-03-31 3:00 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: Linus Torvalds, linux-kernel, x86
The pull request you sent on Mon, 30 Mar 2020 14:47:11 -0000:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers-core-2020-03-30
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/dbb381b619aa5242c9cb1a8fd54d71c4d79c91eb
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [GIT pull] timers/nohz for v5.7
2020-03-30 14:47 ` [GIT pull] timers/nohz " Thomas Gleixner
@ 2020-03-31 3:00 ` pr-tracker-bot
0 siblings, 0 replies; 14+ messages in thread
From: pr-tracker-bot @ 2020-03-31 3:00 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: Linus Torvalds, linux-kernel, x86
The pull request you sent on Mon, 30 Mar 2020 14:47:13 -0000:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers-nohz-2020-03-30
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/336622e9fce7a0b8243e1cd9f6e1c24d96f13cd8
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [GIT pull] x86/timers for v5.7
2020-03-30 14:47 ` [GIT pull] x86/timers " Thomas Gleixner
@ 2020-03-31 3:00 ` pr-tracker-bot
0 siblings, 0 replies; 14+ messages in thread
From: pr-tracker-bot @ 2020-03-31 3:00 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: Linus Torvalds, linux-kernel, x86
The pull request you sent on Mon, 30 Mar 2020 14:47:16 -0000:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-timers-2020-03-30
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/458ef2a25e0cbdc216012aa2b9cf549d64133b08
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2020-03-31 3:00 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-30 14:47 [GIT pull] irq/core for v5.7 Thomas Gleixner
2020-03-30 14:47 ` [GIT pull] smp/core " Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] timers/core " Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] timers/nohz " Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] x86/entry " Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] x86/splitlock " Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-30 14:47 ` [GIT pull] x86/timers " Thomas Gleixner
2020-03-31 3:00 ` pr-tracker-bot
2020-03-31 3:00 ` [GIT pull] irq/core " pr-tracker-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).