On Fri, Feb 22, Paolo Bonzini wrote: > On 22/02/19 12:44, Thomas Gleixner wrote: > >> The specific usecase I have is a workload within VMs that makes heavy > >> use of TSC. The kernel is booted with 'clocksource=tsc highres=off > >> nohz=off' > >> because only this clocksource gives enough granularity. The default > >> paravirtualized clock will return the same values via > >> clock_gettime(CLOCK_MONOTONIC) if the timespan between two calls is too > >> short. This does not happen with 'clocksource=tsc'. > > This shouldn't happen. clock_gettime(CLOCK_MONOTONIC) should be > monotonic increasing. Do you have a testcase?
Two years ago I tweaked sysbench to track the execution time of the 'memory' test: https://github.com/olafhering/sysbench https://github.com/olafhering/sysbench/blame/pv/src/tests/memory/sb_memory.c The checks in diff_timespec() triggered with clocksource=xen, but I can not reproduce it right now with 5.0 and 4.4 based kernels. I have no data how KVM behaves. In the end the hypervisor was tweaked to tolerate a certain jitter in expected TSC speed before emulation kicks in. Up to ~1MHz would be ok to stay within the 500PPM limit that ntpd can handle. But now there is that "island" issue that needs to be resolved in one way or another. Olaf
signature.asc
Description: PGP signature