|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 0/6] x86/time: PVCLOCK_TSC_STABLE_BIT support
Hey!
This is v3 on the pvclock TSC stable bit series.
Complete changelog on individual patches but overall is addressing
Jan's comments, plus some other changes regarding the recent monotonicity
improvements on x86/time.
Series is divided as follows:
R * Patch 1: Small refactor around init_platform_time to reuse
initialization code when switching to TSC.
U * Patch 2: Adds a new clocksource based on TSC
U,U * Patch 3, 4: Adjustments for patch 5
U * Patch 5: Implements the PVCLOCK_TSC_STABLE_BIT
N * Patch 6: Document new clocksource
[ R := Reviewed-by ;; U := Updated ;; N := New ]
I kept the series the same but a fundamental difference from previous
versions is that I stop clocksource=tsc from being used at all if hotplug is
possible. To facilitate the review I kept it on Patch 5 as originally posted,
whereas clocksource is added in Patch 2. But if preferred I can merge these two.
The main benefit of this series is two-fold:
1. Provide the guarantee of monotonic results on xen own system time as seen
by any cpu when using TSC as clocksource.
2. Provide this same guarantee to guests and thus set the
TSC_STABLE_BIT (both FreeBSD and Linux support it) which then allows guests to
skip expensive monotonicity check between PV CPU time infos. Plus, on Linux
specifically this also means that it could support vDSO which greatly increases
performance (x10) for gettimeofday and clock_gettime since it would no
longer need to do the system call to get a reliable snapshot of system time.
For a reference on my laptop the speed of gettimeofday under xen pvclock is
~2 Mops/sec (Million ops per sec) whereas with vDSO it's on the range
of ~22 Mops/sec on <= 4.4 kernels and ~37 Mops on >= 4.5.
Doing a long running time warp test for the past days on a dual-socket Haswell
machine and I haven't yet seen time going backwards.
Thanks!
Joao
Joao Martins (6):
x86/time: refactor init_platform_time()
x86/time: implement tsc as clocksource
x86/time: streamline platform time init on plt_update()
x86/time: refactor read_platform_stime()
x86/time: implement PVCLOCK_TSC_STABLE_BIT
docs: update clocksource option
docs/misc/xen-command-line.markdown | 6 +-
xen/arch/x86/platform_hypercall.c | 3 +-
xen/arch/x86/time.c | 226 +++++++++++++++++++++++++++++++-----
xen/include/asm-x86/time.h | 1 +
4 files changed, 205 insertions(+), 31 deletions(-)
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |