|
[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 |