Paul E. McKenney
dba9cda5aa
clocksource: Retry clock read if long delays detected
...
[ Upstream commit db3a34e17433de2390eb80d436970edcebd0ca3e ]
When the clocksource watchdog marks a clock as unstable, this might be due
to that clock being unstable or it might be due to delays that happen to
occur between the reads of the two clocks. Yes, interrupts are disabled
across those two reads, but there are no shortage of things that can delay
interrupts-disabled regions of code ranging from SMI handlers to vCPU
preemption. It would be good to have some indication as to why the clock
was marked unstable.
Therefore, re-read the watchdog clock on either side of the read from the
clock under test. If the watchdog clock shows an excessive time delta
between its pair of reads, the reads are retried.
The maximum number of retries is specified by a new kernel boot parameter
clocksource.max_cswd_read_retries, which defaults to three, that is, up to
four reads, one initial and up to three retries. If more than one retry
was required, a message is printed on the console (the occasional single
retry is expected behavior, especially in guest OSes). If the maximum
number of retries is exceeded, the clock under test will be marked
unstable. However, the probability of this happening due to various sorts
of delays is quite small. In addition, the reason (clock-read delays) for
the unstable marking will be apparent.
Reported-by: Chris Mason <clm@fb.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Feng Tang <feng.tang@intel.com>
Link: https://lore.kernel.org/r/20210527190124.440372-1-paulmck@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-07-14 16:53:18 +02:00
..
ABI
evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded
2021-07-14 16:53:08 +02:00
accounting
admin-guide
clocksource: Retry clock read if long delays detected
2021-07-14 16:53:18 +02:00
arm
ARM: 9012/1: move device tree mapping out of linear region
2021-05-19 10:08:32 +02:00
arm64
arm64: errata: Hide CTR_EL0.DIC on systems affected by Neoverse-N1 #1542419
2020-04-29 16:32:56 +02:00
block
docs: block: null_blk: enhance document style
2019-09-11 16:04:22 -06:00
bpf
cdrom
core-api
XArray: add xas_split
2021-06-10 13:37:14 +02:00
cpu-freq
Documentation: cpufreq: Update policy notifier documentation
2019-09-02 22:44:05 +02:00
crypto
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-09-18 12:11:14 -07:00
dev-tools
mm, page_owner: decouple freeing stack trace from debug_pagealloc
2019-10-14 15:04:00 -07:00
devicetree
dt-bindings: net: ethernet-controller: fix typo in NVMEM
2021-04-14 08:24:18 +02:00
doc-guide
driver-api
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
EDID
fault-injection
fb
fbdev: fix numbering of fbcon options
2020-02-24 08:36:42 +01:00
features
It's a somewhat calmer cycle for docs this time, as the churn of the mass
2019-09-17 16:22:26 -07:00
filesystems
sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
2021-03-07 12:20:48 +01:00
firmware-guide
Documentation: ACPI: DSD: Convert LED documentation to ReST
2019-08-20 23:53:46 +02:00
firmware_class
fpga
Documentation: fpga: dfl: add descriptions for virtualization and new interfaces.
2019-09-03 19:35:42 -07:00
gpu
Merge drm/drm-next into drm-intel-next-queued
2019-08-22 00:10:36 -07:00
hid
hwmon
hwmon: (max31790) Fix pwmX_enable attributes
2021-07-14 16:53:14 +02:00
i2c
ia64
ide
iio
infiniband
Documentation/infiniband: update name of some functions
2019-09-13 16:55:55 -03:00
input
ioctl
isdn
kbuild
kbuild: support LLVM=1 to switch the default tools to Clang/LLVM
2020-08-26 10:40:47 +02:00
kernel-hacking
docs: Add documentation for Symbol Namespaces
2019-09-10 10:30:49 +02:00
leds
livepatch
locking
doc 🔒 remove reference to clever use of read-write lock
2019-09-14 01:53:27 -06:00
m68k
maintainer
media
media: videodev2.h: RGB BT2020 and HSV are always full range
2020-11-05 11:43:15 +01:00
mic
mips
Main MIPS changes for v5.4:
2019-09-22 09:30:30 -07:00
misc-devices
netlabel
networking
can: j1939: swap addr and pgn in the send example
2020-11-18 19:20:19 +01:00
nios2
openrisc
parisc
PCI
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
2019-08-27 14:23:31 -07:00
pcmcia
power
Merge branches 'pm-opp', 'pm-qos', 'acpi-pm', 'pm-domains' and 'pm-tools'
2019-09-17 09:49:19 +02:00
powerpc
docs: powerpc: Add missing documentation reference
2019-09-17 23:59:34 +10:00
process
Documentation/process: Add fallthrough pseudo-keyword
2019-10-11 09:26:05 -07:00
RCU
riscv
It's a somewhat calmer cycle for docs this time, as the churn of the mass
2019-09-17 16:22:26 -07:00
s390
Documentation/s390: remove outdated debugging390 documentation
2019-08-21 12:41:43 +02:00
scheduler
scsi
scsi: smartpqi: Update attribute name to driver_version
2020-01-17 19:48:27 +01:00
security
Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity
2019-09-27 19:37:27 -07:00
sh
sound
ALSA: hda/realtek - Remove now-unnecessary XPS 13 headphone noise fixups
2020-04-17 10:50:08 +02:00
sparc
sphinx
tweewide: Fix most Shebang lines
2021-05-22 11:38:30 +02:00
sphinx-static
spi
target
tweewide: Fix most Shebang lines
2021-05-22 11:38:30 +02:00
timers
trace
tweewide: Fix most Shebang lines
2021-05-22 11:38:30 +02:00
translations
doc: arm64: fix grammar dtb placed in no attributes region
2019-09-06 08:44:34 -06:00
usb
USB: rio500: Remove Rio 500 kernel driver
2019-10-04 10:53:36 +02:00
userspace-api
Documentation: seccomp: Fix user notification documentation
2021-06-03 08:59:03 +02:00
virt
KVM: arm64: Reject VM creation when the default IPA size is unsupported
2021-03-17 17:03:57 +01:00
virtual
vm
mm/slub: clarify verification reporting
2021-06-23 14:41:30 +02:00
w1
watchdog
linux-watchdog 5.4-rc1 tag
2019-09-27 11:17:38 -07:00
x86
x86/CPU/AMD: Save AMD NodeId as cpu_die_id
2020-12-30 11:51:47 +01:00
xtensa
xtensa: fix TLBTEMP area placement
2020-11-24 13:29:22 +01:00
.gitignore
asm-annotations.rst
linkage: Introduce new macros for assembler symbols
2020-11-10 12:37:24 +01:00
atomic_bitops.txt
atomic_t.txt
bus-virt-phys-mapping.txt
Changes
CodingStyle
conf.py
COPYING-logo
crc32.txt
debugging-modules.txt
debugging-via-ohci1394.txt
digsig.txt
DMA-API-HOWTO.txt
DMA-API.txt
dma-mapping: remove dma_release_declared_memory
2019-09-04 11:13:19 +02:00
DMA-attributes.txt
DMA-ISA-LPC.txt
docutils.conf
dontdiff
futex-requeue-pi.txt
hwspinlock.txt
index.rst
linkage: Introduce new macros for assembler symbols
2020-11-10 12:37:24 +01:00
io-mapping.txt
io_ordering.txt
IPMI.txt
IRQ-affinity.txt
IRQ-domain.txt
IRQ.txt
irqflags-tracing.txt
Kconfig
kobject.txt
kprobes.txt
kref.txt
logo.gif
lzo.txt
lib/lzo: fix ambiguous encoding bug in lzo-rle
2020-06-17 16:40:28 +02:00
mailbox.txt
Makefile
memory-barriers.txt
nommu-mmap.txt
padata.txt
padata: allocate workqueue internally
2019-09-13 21:15:39 +10:00
percpu-rw-semaphore.txt
pi-futex.txt
preempt-locking.txt
rbtree.txt
remoteproc.txt
robust-futex-ABI.txt
robust-futexes.txt
rpmsg.txt
speculation.txt
static-keys.txt
SubmittingPatches
tee.txt
this_cpu_ops.txt
unaligned-memory-access.txt
xz.txt