From: Alexander Yarygin <yarygin@xxxxxxxxxxxxxxxxxx> Currently perf-kvm uses string literals for kvm event names, but it works only for x86, because other architectures may have other names for those events. This patch introduces defines for kvm_entry and kvm_exit events and lets perf-kvm replace literals. Signed-off-by: Alexander Yarygin <yarygin@xxxxxxxxxxxxxxxxxx> Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> --- arch/x86/include/uapi/asm/kvm.h | 8 ++++++++ tools/perf/builtin-kvm.c | 10 ++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h index d3a8778..88c0099 100644 --- a/arch/x86/include/uapi/asm/kvm.h +++ b/arch/x86/include/uapi/asm/kvm.h @@ -8,6 +8,8 @@ #include <linux/types.h> #include <linux/ioctl.h> +#include <asm/svm.h> +#include <asm/vmx.h> #define DE_VECTOR 0 #define DB_VECTOR 1 @@ -342,4 +344,10 @@ struct kvm_xcrs { struct kvm_sync_regs { }; +#define VCPU_ID "vcpu_id" + +#define KVM_ENTRY "kvm:kvm_entry" +#define KVM_EXIT "kvm:kvm_exit" +#define KVM_EXIT_REASON "exit_reason" + #endif /* _ASM_X86_KVM_H */ diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index 806c0e4..9a162ae 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -30,8 +30,6 @@ #include <math.h> #ifdef HAVE_KVM_STAT_SUPPORT -#include <asm/svm.h> -#include <asm/vmx.h> #include <asm/kvm.h> struct event_key { @@ -130,12 +128,12 @@ static void exit_event_get_key(struct perf_evsel *evsel, struct event_key *key) { key->info = 0; - key->key = perf_evsel__intval(evsel, sample, "exit_reason"); + key->key = perf_evsel__intval(evsel, sample, KVM_EXIT_REASON); } static bool kvm_exit_event(struct perf_evsel *evsel) { - return !strcmp(evsel->name, "kvm:kvm_exit"); + return !strcmp(evsel->name, KVM_EXIT); } static bool exit_event_begin(struct perf_evsel *evsel, @@ -151,7 +149,7 @@ static bool exit_event_begin(struct perf_evsel *evsel, static bool kvm_entry_event(struct perf_evsel *evsel) { - return !strcmp(evsel->name, "kvm:kvm_entry"); + return !strcmp(evsel->name, KVM_ENTRY); } static bool exit_event_end(struct perf_evsel *evsel, @@ -557,7 +555,7 @@ struct vcpu_event_record *per_vcpu_record(struct thread *thread, return NULL; } - vcpu_record->vcpu_id = perf_evsel__intval(evsel, sample, "vcpu_id"); + vcpu_record->vcpu_id = perf_evsel__intval(evsel, sample, VCPU_ID); thread->priv = vcpu_record; } -- 1.8.4.2 -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html