From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: [patch 2/5] pvclock: move code to pvclock.h Date: Fri, 16 Oct 2009 01:08:48 -0300 Message-ID: <20091016041415.667052851@redhat.com> References: <20091016040845.957760057@redhat.com> Cc: riel@redhat.com, Marcelo Tosatti To: kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:41999 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751302AbZJPEPl (ORCPT ); Fri, 16 Oct 2009 00:15:41 -0400 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n9G4FFeI020954 for ; Fri, 16 Oct 2009 00:15:15 -0400 Content-Disposition: inline; filename=pvclock-export Sender: kvm-owner@vger.kernel.org List-ID: To be used by kvmclock.c. Signed-off-by: Marcelo Tosatti Index: kvm/arch/x86/include/asm/pvclock.h =================================================================== --- kvm.orig/arch/x86/include/asm/pvclock.h +++ kvm/arch/x86/include/asm/pvclock.h @@ -4,6 +4,20 @@ #include #include +/* + * These are perodically updated + * xen: magic shared_info page + * kvm: gpa registered via msr + * and then copied here. + */ +struct pvclock_shadow_time { + u64 tsc_timestamp; /* TSC at last update of time vals. */ + u64 system_timestamp; /* Time, in nanosecs, since boot. */ + u32 tsc_to_nsec_mul; + int tsc_shift; + u32 version; +}; + /* some helper functions for xen and kvm pv clock sources */ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src); unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src); @@ -11,4 +25,8 @@ void pvclock_read_wallclock(struct pvclo struct pvclock_vcpu_time_info *vcpu, struct timespec *ts); +u64 pvclock_get_nsec_offset(struct pvclock_shadow_time *shadow); +unsigned pvclock_get_time_values(struct pvclock_shadow_time *dst, + struct pvclock_vcpu_time_info *src); + #endif /* _ASM_X86_PVCLOCK_H */ Index: kvm/arch/x86/kernel/pvclock.c =================================================================== --- kvm.orig/arch/x86/kernel/pvclock.c +++ kvm/arch/x86/kernel/pvclock.c @@ -20,20 +20,6 @@ #include /* - * These are perodically updated - * xen: magic shared_info page - * kvm: gpa registered via msr - * and then copied here. - */ -struct pvclock_shadow_time { - u64 tsc_timestamp; /* TSC at last update of time vals. */ - u64 system_timestamp; /* Time, in nanosecs, since boot. */ - u32 tsc_to_nsec_mul; - int tsc_shift; - u32 version; -}; - -/* * Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction, * yielding a 64-bit result. */ @@ -71,7 +57,7 @@ static inline u64 scale_delta(u64 delta, return product; } -static u64 pvclock_get_nsec_offset(struct pvclock_shadow_time *shadow) +u64 pvclock_get_nsec_offset(struct pvclock_shadow_time *shadow) { u64 delta = native_read_tsc() - shadow->tsc_timestamp; return scale_delta(delta, shadow->tsc_to_nsec_mul, shadow->tsc_shift); @@ -81,8 +67,8 @@ static u64 pvclock_get_nsec_offset(struc * Reads a consistent set of time-base values from hypervisor, * into a shadow data area. */ -static unsigned pvclock_get_time_values(struct pvclock_shadow_time *dst, - struct pvclock_vcpu_time_info *src) +unsigned pvclock_get_time_values(struct pvclock_shadow_time *dst, + struct pvclock_vcpu_time_info *src) { do { dst->version = src->version;