The main goal is to make L2 kvm-clock be stable when it's running over L1 with stable kvm-clock. The patch series is for x86 architecture only. If the series is approved I'll do changes for other architectures but I don't have an ability to compile and check for every single on (help needed) The patch series do the following: * change timekeeper interface to get cycles stamp value from the timekeeper * get rid of pvclock copy in KVM by using the changed timekeeper interface: get time and cycles right from the timekeeper * make KVM recognize a stable kvm-clock as stable clocksource and use the KVM masterclock in this case, which means making L2 stable when running over stable L1 kvm-clock Denis Plotnikov (11): timekeeper: change interface of clocksource reding functions pvclock: write cycle stamp value if a pointer given kvmclock: pass cycles pointer to the changed pvclock interface TSC: write cycles stamp value to input pointer timekeeping: change ktime_get_with_offset interface to accept cycles pointer timekeeping: add functions returning cycle stamp counter along with time timekeeper: add clocksource change notifier timekeeper: add a couple of the core timekeeper reading helpers KVM: get rid of pv_clock_gtod pvclock: add clocksource change notification on changing of tsc stable bit KVM: add pvclock to a list of stable clocks. arch/x86/hyperv/hv_init.c | 4 +- arch/x86/include/asm/kvm_host.h | 2 +- arch/x86/include/asm/pvclock.h | 3 +- arch/x86/kernel/hpet.c | 4 +- arch/x86/kernel/kvmclock.c | 19 +-- arch/x86/kernel/pvclock.c | 32 ++++- arch/x86/kernel/tsc.c | 8 +- arch/x86/kvm/trace.h | 27 ++-- arch/x86/kvm/x86.c | 267 ++++++++++++---------------------------- arch/x86/lguest/boot.c | 2 +- arch/x86/platform/uv/uv_time.c | 10 +- arch/x86/xen/time.c | 4 +- drivers/char/hpet.c | 2 +- drivers/clocksource/acpi_pm.c | 13 +- drivers/hv/hv_util.c | 6 +- include/linux/clocksource.h | 7 +- include/linux/cs_notifier.h | 17 +++ include/linux/timekeeping.h | 35 +++++- kernel/time/clocksource.c | 4 +- kernel/time/jiffies.c | 2 +- kernel/time/timekeeping.c | 119 ++++++++++++++---- 21 files changed, 316 insertions(+), 271 deletions(-) create mode 100644 include/linux/cs_notifier.h -- 2.7.4