[lkml]   [2020]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[tip: x86/cpu] perf/x86: Provide stubs of KVM helpers for non-Intel CPUs
The following commit has been merged into the x86/cpu branch of tip:

Commit-ID: 616c59b52342b0370ab822ce88fa0ff7f3671e4a
Author: Sean Christopherson <>
AuthorDate: Fri, 20 Dec 2019 20:45:12 -08:00
Committer: Borislav Petkov <>
CommitterDate: Mon, 13 Jan 2020 19:33:56 +01:00

perf/x86: Provide stubs of KVM helpers for non-Intel CPUs

Provide stubs for perf_guest_get_msrs() and intel_pt_handle_vmx() when
building without support for Intel CPUs, i.e. CPU_SUP_INTEL=n. Lack of
stubs is not currently a problem as the only user, KVM_INTEL, takes a
dependency on CPU_SUP_INTEL=y. Provide the stubs for all CPUs so that
KVM_INTEL can be built for any CPU with compatible hardware support,
e.g. Centuar and Zhaoxin CPUs.

Note, the existing stub for perf_guest_get_msrs() is essentially dead
code as KVM selects CONFIG_PERF_EVENTS, i.e. the only user guarantees
the full implementation is built.

Signed-off-by: Sean Christopherson <>
Signed-off-by: Borislav Petkov <>
arch/x86/include/asm/perf_event.h | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/arch/x86/include/asm/perf_event.h b/arch/x86/include/asm/perf_event.h
index ee26e92..29964b0 100644
--- a/arch/x86/include/asm/perf_event.h
+++ b/arch/x86/include/asm/perf_event.h
@@ -322,17 +322,10 @@ struct perf_guest_switch_msr {
u64 host, guest;

-extern struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr);
extern void perf_get_x86_pmu_capability(struct x86_pmu_capability *cap);
extern void perf_check_microcode(void);
extern int x86_perf_rdpmc_index(struct perf_event *event);
-static inline struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr)
- *nr = 0;
- return NULL;
static inline void perf_get_x86_pmu_capability(struct x86_pmu_capability *cap)
memset(cap, 0, sizeof(*cap));
@@ -342,8 +335,23 @@ static inline void perf_events_lapic_init(void) { }
static inline void perf_check_microcode(void) { }

+extern struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr);
+static inline struct perf_guest_switch_msr *perf_guest_get_msrs(int *nr)
+ *nr = 0;
+ return NULL;
extern void intel_pt_handle_vmx(int on);
+static inline void intel_pt_handle_vmx(int on)

#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_AMD)
 \ /
  Last update: 2020-01-14 11:19    [W:0.186 / U:4.884 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site