qemu-cr16/hw/timer
Igor Mammedov 20c2345290 hpet: make main counter read lock-less
Make access to main HPET counter lock-less.

In unlikely event of an update in progress, readers will busy wait
untill update is finished.

As result micro benchmark of concurrent reading of HPET counter
with large number of vCPU shows over 80% better (less) latency.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20250814160600.2327672-6-imammedo@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-29 12:48:14 +02:00
..
a9gtimer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
allwinner-a10-pit.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
arm_mptimer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
arm_timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
armv7m_systick.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
aspeed_timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
avr_timer16.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_systmr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cadence_ttc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cmsdk-apb-dualtimer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cmsdk-apb-timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
digic-timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210_mct.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210_pwm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
grlib_gptimer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
hpet.c hpet: make main counter read lock-less 2025-08-29 12:48:14 +02:00
i8254.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
i8254_common.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
ibex_timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx_epit.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx_gpt.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
Kconfig rust: Kconfig: Factor out whether HPET is Rust or C 2025-03-20 09:23:24 +01:00
meson.build rust: Kconfig: Factor out whether HPET is Rust or C 2025-03-20 09:23:24 +01:00
mips_gictimer.c hw: Do not include hw/sysbus.h if it is not necessary 2021-05-02 17:24:50 +02:00
mss-timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
npcm7xx_timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
nrf51_timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
pxa2xx_timer.c hw/arm: Replace TABs for spaces in OMAP board and device code 2025-05-14 14:29:47 +01:00
renesas_cmt.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
renesas_tmr.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sh_timer.c include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
sifive_pwm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
slavio_timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sse-counter.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sse-timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stellaris-gptm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32f2xx_timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
trace-events hw/timer/aspeed: Refactor Timer Callbacks for SoC-Specific Implementations 2025-01-27 09:38:15 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
xilinx_timer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00