linux/arch
Uros Bizjak 5c9da9fe82 x86/pvclock: Improve atomic update of last_value in pvclock_clocksource_read()
Improve atomic update of last_value in pvclock_clocksource_read:

- Atomic update can be skipped if the "last_value" is already
  equal to "ret".

- The detection of atomic update failure is not correct. The value,
  returned by atomic64_cmpxchg should be compared to the old value
  from the location to be updated. If these two are the same, then
  atomic update succeeded and "last_value" location is updated to
  "ret" in an atomic way. Otherwise, the atomic update failed and
  it should be retried with the value from "last_value" - exactly
  what atomic64_try_cmpxchg does in a correct and more optimal way.

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lkml.kernel.org/r/20230118202330.3740-1-ubizjak@gmail.com
Link: https://lore.kernel.org/r/20230126151323.643408110@infradead.org
2023-01-31 15:01:46 +01:00
..
alpha arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
arc arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
arm Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
arm64 Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
csky arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
hexagon arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
ia64 Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
loongarch Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
m68k objtool/idle: Validate __cpuidle code as noinstr 2023-01-13 11:48:15 +01:00
microblaze arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
mips Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
nios2 arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
openrisc arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
parisc arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
powerpc Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
riscv Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
s390 Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
sh Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
sparc arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
um arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
x86 x86/pvclock: Improve atomic update of last_value in pvclock_clocksource_read() 2023-01-31 15:01:46 +01:00
xtensa Linux 6.2-rc6 2023-01-31 15:01:20 +01:00
.gitignore
Kconfig arm64 fixes for -rc1 2022-12-16 13:46:41 -06:00