aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/viridian.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-01-06 13:58:13 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-01-06 13:58:13 +0000
commitf498e9065d34ffc27300ffab18ef1806d3318530 (patch)
treeba2b39df3b9ba406173146a2516ad67bbbb8b552 /xen/arch/x86/hvm/viridian.c
parentece13f1fb3a6a9473540afa42631b2380e5a0a38 (diff)
downloadxen-f498e9065d34ffc27300ffab18ef1806d3318530.tar.gz
xen-f498e9065d34ffc27300ffab18ef1806d3318530.tar.bz2
xen-f498e9065d34ffc27300ffab18ef1806d3318530.zip
hvm: Tell Viridian-enabled OS to relax timer interrupt checks.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/hvm/viridian.c')
-rw-r--r--xen/arch/x86/hvm/viridian.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/xen/arch/x86/hvm/viridian.c b/xen/arch/x86/hvm/viridian.c
index b6389e6c47..a18ea9e3d1 100644
--- a/xen/arch/x86/hvm/viridian.c
+++ b/xen/arch/x86/hvm/viridian.c
@@ -37,6 +37,7 @@
/* Viridian CPUID 4000004, Implementation Recommendations. */
#define CPUID4A_MSR_BASED_APIC (1 << 3)
+#define CPUID4A_RELAX_TIMER_INT (1 << 5)
int cpuid_viridian_leaves(unsigned int leaf, unsigned int *eax,
unsigned int *ebx, unsigned int *ecx,
@@ -84,7 +85,8 @@ int cpuid_viridian_leaves(unsigned int leaf, unsigned int *eax,
if ( (d->arch.hvm_domain.viridian.guest_os_id.raw == 0) ||
(d->arch.hvm_domain.viridian.guest_os_id.fields.os < 4) )
break;
- *eax = CPUID4A_MSR_BASED_APIC;
+ *eax = (CPUID4A_MSR_BASED_APIC |
+ CPUID4A_RELAX_TIMER_INT);
*ebx = 2047; /* long spin count */
break;
}