[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 12/14] x86/hvm: Detect TSC scaling through hvm_funcs
This patch uses hvm_funcs.tsc_scaling_supported instead of the architecture code to detect the TSC scaling support. Signed-off-by: Haozhong Zhang <haozhong.zhang@xxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/x86/time.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 2277158..9f610c6 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -37,7 +37,6 @@ #include <asm/hpet.h> #include <io_ports.h> #include <asm/setup.h> /* for early_time_init */ -#include <asm/hvm/svm/svm.h> /* for cpu_has_tsc_ratio */ #include <public/arch-x86/cpuid.h> /* opt_clocksource: Force clocksource to one of: pit, hpet, acpi. */ @@ -815,7 +814,7 @@ static void __update_vcpu_system_time(struct vcpu *v, int force) } else { - if ( is_hvm_domain(d) && cpu_has_tsc_ratio ) + if ( is_hvm_domain(d) && hvm_funcs.tsc_scaling_supported ) { tsc_stamp = hvm_scale_tsc(v, t->local_tsc_stamp); _u.tsc_to_system_mul = d->arch.vtsc_to_ns.mul_frac; @@ -1758,7 +1757,7 @@ void tsc_get_info(struct domain *d, uint32_t *tsc_mode, uint32_t *incarnation) { bool_t enable_tsc_scaling = has_hvm_container_domain(d) && - cpu_has_tsc_ratio; + hvm_funcs.tsc_scaling_supported; *incarnation = d->arch.incarnation; *tsc_mode = d->arch.tsc_mode; @@ -1867,7 +1866,7 @@ void tsc_set_info(struct domain *d, */ if ( tsc_mode == TSC_MODE_DEFAULT && host_tsc_is_safe() && (has_hvm_container_domain(d) ? - d->arch.tsc_khz == cpu_khz || cpu_has_tsc_ratio : + d->arch.tsc_khz == cpu_khz || hvm_funcs.tsc_scaling_supported : incarnation == 0) ) { case TSC_MODE_NEVER_EMULATE: @@ -1881,7 +1880,7 @@ void tsc_set_info(struct domain *d, d->arch.vtsc = !boot_cpu_has(X86_FEATURE_RDTSCP) || !host_tsc_is_safe(); enable_tsc_scaling = has_hvm_container_domain(d) && - cpu_has_tsc_ratio && d->arch.vtsc; + hvm_funcs.tsc_scaling_supported && d->arch.vtsc; d->arch.tsc_khz = (enable_tsc_scaling && gtsc_khz) ? gtsc_khz : cpu_khz; set_time_scale(&d->arch.vtsc_to_ns, d->arch.tsc_khz * 1000 ); d->arch.ns_to_vtsc = scale_reciprocal(d->arch.vtsc_to_ns); -- 2.6.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |