aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2013-09-06 14:47:37 +0200
committerJan Beulich <jbeulich@suse.com>2013-09-06 14:47:37 +0200
commit334b5924569c6e391d78268b1481b96aa4293b0a (patch)
treefcfc3af18c9769bab8b8f6a854a4544198e79ae2
parent22ab16cefc04d4e8a0fc72dfff4edd00cc6841da (diff)
downloadxen-334b5924569c6e391d78268b1481b96aa4293b0a.tar.gz
xen-334b5924569c6e391d78268b1481b96aa4293b0a.tar.bz2
xen-334b5924569c6e391d78268b1481b96aa4293b0a.zip
x86/Intel: add further support for Ivy Bridge CPU models
And some initial Haswell ones at once. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: "Nakajima, Jun" <jun.nakajima@intel.com>
-rw-r--r--xen/arch/x86/acpi/cpu_idle.c8
-rw-r--r--xen/arch/x86/hvm/vmx/vmx.c4
-rw-r--r--xen/arch/x86/hvm/vmx/vpmu_core2.c1
3 files changed, 10 insertions, 3 deletions
diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index f9d74d69e4..71f74abae0 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -105,11 +105,15 @@ static void do_get_hw_residencies(void *arg)
switch ( c->x86_model )
{
- /* Ivy bridge */
- case 0x3A:
/* Sandy bridge */
case 0x2A:
case 0x2D:
+ /* Ivy bridge */
+ case 0x3A:
+ case 0x3E:
+ /* Haswell */
+ case 0x3C:
+ case 0x45:
GET_PC2_RES(hw_res->pc2);
GET_CC7_RES(hw_res->cc7);
/* fall through */
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index a1077b680e..afcd760b9c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1807,7 +1807,9 @@ static const struct lbr_info *last_branch_msr_get(void)
/* Sandy Bridge */
case 42: case 45:
/* Ivy Bridge */
- case 58:
+ case 58: case 62:
+ /* Haswell */
+ case 60: case 69:
return nh_lbr;
break;
/* Atom */
diff --git a/xen/arch/x86/hvm/vmx/vpmu_core2.c b/xen/arch/x86/hvm/vmx/vpmu_core2.c
index c79103e3f5..01dc518788 100644
--- a/xen/arch/x86/hvm/vmx/vpmu_core2.c
+++ b/xen/arch/x86/hvm/vmx/vpmu_core2.c
@@ -747,6 +747,7 @@ int vmx_vpmu_initialise(struct vcpu *v, unsigned int vpmu_flags)
case 46:
case 47:
case 58:
+ case 62:
ret = core2_vpmu_initialise(v, vpmu_flags);
if ( !ret )
vpmu->arch_vpmu_ops = &core2_vpmu_ops;