[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 0/5] x86/time: PVCLOCK_TSC_STABLE_BIT support
Hey, This is v4 on the pvclock TSC series addressing comments from previous version, see individual patches for complete changelog. This 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 * Patch 3: Prerequisite for patch 4 U * Patch 4: Implements the PVCLOCK_TSC_STABLE_BIT N * Patch 5: Extend "tsc" param to relax monotonicity restriction across sockets. [ R := Reviewed-by ;; U := Updated ;; N := New ] The 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 2 weeks on a dual-socket Haswell machine and I haven't yet seen time going backwards (plus tests on older multi socket machines). Furthermore double checked migration to/from hosts with/without the bit while guest was running the time warp test and no issues occurred too. Thanks! Joao Martins (5): x86/time: refactor init_platform_time() x86/time: implement tsc as clocksource x86/time: refactor read_platform_stime() x86/time: implement PVCLOCK_TSC_STABLE_BIT x86/time: extend "tsc" param with "stable:socket" docs/misc/xen-command-line.markdown | 10 +- xen/arch/x86/platform_hypercall.c | 3 +- xen/arch/x86/time.c | 226 +++++++++++++++++++++++++++++++----- xen/include/asm-x86/time.h | 1 + 4 files changed, 206 insertions(+), 34 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 |