13 #include "../../util/kvm-stat.h" 35 key->
key = icpt_insn_decoder(insn);
64 { .
name =
"kvm:kvm_s390_intercept_instruction",
66 { .name =
"kvm:kvm_s390_handle_sigp",
68 { .name =
"kvm:kvm_s390_handle_diag",
70 { .name =
"kvm:kvm_s390_intercept_prog",
84 "kvm:kvm_s390_sie_enter",
85 "kvm:kvm_s390_sie_exit",
86 "kvm:kvm_s390_intercept_instruction",
87 "kvm:kvm_s390_handle_sigp",
88 "kvm:kvm_s390_handle_diag",
89 "kvm:kvm_s390_intercept_prog",
94 { .
name =
"vmexit", .ops = &exit_events },
105 if (strstr(cpuid,
"IBM/S390")) {
define_exit_reasons_table(hv_exit_reasons, kvm_trace_symbol_exit)
struct exit_reasons_table * exit_reasons
static void event_icpt_prog_get_key(struct perf_evsel *evsel, struct perf_sample *sample, struct event_key *key)
const char * kvm_events_tp[NR_TPS+1]
static struct child_event_ops child_events[]
static struct kvm_events_ops exit_events
int cpu_isa_init(struct perf_kvm_stat *kvm, const char *cpuid __maybe_unused)
const char *const kvm_skip_events[]
struct exit_reasons_table * exit_reasons
static void event_sigp_get_key(struct perf_evsel *evsel, struct perf_sample *sample, struct event_key *key)
u64 perf_evsel__intval(struct perf_evsel *evsel, struct perf_sample *sample, const char *name)
bool exit_event_begin(struct perf_evsel *evsel, struct perf_sample *sample, struct event_key *key)
static void event_icpt_insn_get_key(struct perf_evsel *evsel, struct perf_sample *sample, struct event_key *key)
void exit_event_decode_key(struct perf_kvm_stat *kvm, struct event_key *key, char *decode)
bool(* is_begin_event)(struct perf_evsel *evsel, struct perf_sample *sample, struct event_key *key)
const char * kvm_exit_reason
static void event_diag_get_key(struct perf_evsel *evsel, struct perf_sample *sample, struct event_key *key)
const char * exit_reasons_isa
const char * kvm_exit_trace
const char * kvm_entry_trace
bool exit_event_end(struct perf_evsel *evsel, struct perf_sample *sample, struct event_key *key)