Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f21037b authored by Jan Kiszka's avatar Jan Kiszka Committed by Jiri Olsa
Browse files

tools lib traceevent: Factor out print_exit_reason in kvm plugin

parent 20d3cbd7
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -244,15 +244,14 @@ static const char *find_exit_reason(unsigned isa, int val)
	return strings[i].str;
}

static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record,
			    struct event_format *event, void *context)
static int print_exit_reason(struct trace_seq *s, struct pevent_record *record,
			     struct event_format *event, const char *field)
{
	unsigned long long isa;
	unsigned long long val;
	unsigned long long info1 = 0, info2 = 0;
	const char *reason;

	if (pevent_get_field_val(s, event, "exit_reason", record, &val, 1) < 0)
	if (pevent_get_field_val(s, event, field, record, &val, 1) < 0)
		return -1;

	if (pevent_get_field_val(s, event, "isa", record, &isa, 0) < 0)
@@ -263,6 +262,16 @@ static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record,
		trace_seq_printf(s, "reason %s", reason);
	else
		trace_seq_printf(s, "reason UNKNOWN (%llu)", val);
	return 0;
}

static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record,
			    struct event_format *event, void *context)
{
	unsigned long long info1 = 0, info2 = 0;

	if (print_exit_reason(s, record, event, "exit_reason") < 0)
		return -1;

	pevent_print_num_field(s, " rip 0x%lx", event, "guest_rip", record, 1);