diff options
author | Yan, Zheng <[email protected]> | 2012-08-21 17:08:37 +0800 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2012-10-20 10:07:02 +0200 |
commit | a05123bdd1b9ba961ed262864924a5b3ee81afe8 (patch) | |
tree | 4005c7e92db9aea00358e69d3e1c5a3db24843e9 | |
parent | 31fd84b95eb211d5db460a1dda85e004800a7b52 (diff) |
perf/x86: Disable uncore on virtualized CPUs
Initializing uncore PMU on virtualized CPU may hang the kernel.
This is because kvm does not emulate the entire hardware. Thers
are lots of uncore related MSRs, making kvm enumerate them all
is a non-trival task. So just disable uncore on virtualized CPU.
Signed-off-by: Yan, Zheng <[email protected]>
Tested-by: Pekka Enberg <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
-rw-r--r-- | arch/x86/kernel/cpu/perf_event_intel_uncore.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c index 99d96a4978b5..5df8d32ba91e 100644 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c @@ -2926,6 +2926,9 @@ static int __init intel_uncore_init(void) if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) return -ENODEV; + if (cpu_has_hypervisor) + return -ENODEV; + ret = uncore_pci_init(); if (ret) goto fail; |