All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] trace-cmd: Updates for kvm plugin
@ 2014-01-04 17:19 Jan Kiszka
  2014-01-04 17:19 ` [PATCH 1/3] trace-cmd: Report unknown VMX exit reasons with code Jan Kiszka
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Jan Kiszka @ 2014-01-04 17:19 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: linux-trace-users, Linux Kernel Mailing List, kvm

Patch 1 is resent unchanged from a previous round, patches 2 and 3
improve the output of nested vmexit tracepoints.

Jan Kiszka (3):
  trace-cmd: Report unknown VMX exit reasons with code
  trace-cmd: Factor out print_exit_reason in kvm plugin
  trace-cmd: Fix and cleanup kvm_nested_vmexit tracepoints

 plugin_kvm.c | 47 +++++++++++++++++++++++++++--------------------
 1 file changed, 27 insertions(+), 20 deletions(-)

-- 
1.8.1.1.298.ge7eed54


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] trace-cmd: Report unknown VMX exit reasons with code
  2014-01-04 17:19 [PATCH 0/3] trace-cmd: Updates for kvm plugin Jan Kiszka
@ 2014-01-04 17:19 ` Jan Kiszka
  2014-01-04 17:19 ` [PATCH 2/3] trace-cmd: Factor out print_exit_reason in kvm plugin Jan Kiszka
  2014-01-04 17:19 ` [PATCH 3/3] trace-cmd: Fix and cleanup kvm_nested_vmexit tracepoints Jan Kiszka
  2 siblings, 0 replies; 6+ messages in thread
From: Jan Kiszka @ 2014-01-04 17:19 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: linux-trace-users, Linux Kernel Mailing List, kvm

From: Jan Kiszka <jan.kiszka@siemens.com>

Allows to parse the result even if the KVM plugin does not yet
understand a specific exit code.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 plugin_kvm.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/plugin_kvm.c b/plugin_kvm.c
index 8a25cf1..59443e5 100644
--- a/plugin_kvm.c
+++ b/plugin_kvm.c
@@ -240,9 +240,8 @@ static const char *find_exit_reason(unsigned isa, int val)
 	for (i = 0; strings[i].val >= 0; i++)
 		if (strings[i].val == val)
 			break;
-	if (strings[i].str)
-		return strings[i].str;
-	return "UNKNOWN";
+
+	return strings[i].str;
 }
 
 static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record,
@@ -251,6 +250,7 @@ static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record,
 	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)
 		return -1;
@@ -258,7 +258,11 @@ static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record,
 	if (pevent_get_field_val(s, event, "isa", record, &isa, 0) < 0)
 		isa = 1;
 
-	trace_seq_printf(s, "reason %s", find_exit_reason(isa, val));
+	reason = find_exit_reason(isa, val);
+	if (reason)
+		trace_seq_printf(s, "reason %s", reason);
+	else
+		trace_seq_printf(s, "reason UNKNOWN (%llu)", val);
 
 	pevent_print_num_field(s, " rip 0x%lx", event, "guest_rip", record, 1);
 
-- 
1.8.1.1.298.ge7eed54


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] trace-cmd: Factor out print_exit_reason in kvm plugin
  2014-01-04 17:19 [PATCH 0/3] trace-cmd: Updates for kvm plugin Jan Kiszka
  2014-01-04 17:19 ` [PATCH 1/3] trace-cmd: Report unknown VMX exit reasons with code Jan Kiszka
@ 2014-01-04 17:19 ` Jan Kiszka
  2014-06-25  5:48   ` [tip:perf/core] tools lib traceevent: " tip-bot for Jan Kiszka
  2014-01-04 17:19 ` [PATCH 3/3] trace-cmd: Fix and cleanup kvm_nested_vmexit tracepoints Jan Kiszka
  2 siblings, 1 reply; 6+ messages in thread
From: Jan Kiszka @ 2014-01-04 17:19 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: linux-trace-users, Linux Kernel Mailing List, kvm

From: Jan Kiszka <jan.kiszka@siemens.com>

We will reuse it for nested vmexit tracepoints.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 plugin_kvm.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/plugin_kvm.c b/plugin_kvm.c
index 59443e5..c407e55 100644
--- a/plugin_kvm.c
+++ b/plugin_kvm.c
@@ -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);
 
-- 
1.8.1.1.298.ge7eed54


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] trace-cmd: Fix and cleanup kvm_nested_vmexit tracepoints
  2014-01-04 17:19 [PATCH 0/3] trace-cmd: Updates for kvm plugin Jan Kiszka
  2014-01-04 17:19 ` [PATCH 1/3] trace-cmd: Report unknown VMX exit reasons with code Jan Kiszka
  2014-01-04 17:19 ` [PATCH 2/3] trace-cmd: Factor out print_exit_reason in kvm plugin Jan Kiszka
@ 2014-01-04 17:19 ` Jan Kiszka
  2014-06-25  5:49   ` [tip:perf/core] tools lib traceevent: " tip-bot for Jan Kiszka
  2 siblings, 1 reply; 6+ messages in thread
From: Jan Kiszka @ 2014-01-04 17:19 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: linux-trace-users, Linux Kernel Mailing List, kvm

From: Jan Kiszka <jan.kiszka@siemens.com>

Fix several issues of kvm_nested_vmexit[_inject]: field width aren't
supported with pevent_print, rip was printed twice/incorrectly, SVM ISA
was hard-coded, we don't use ':' to separate field names.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 plugin_kvm.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/plugin_kvm.c b/plugin_kvm.c
index c407e55..cb52e9e 100644
--- a/plugin_kvm.c
+++ b/plugin_kvm.c
@@ -330,19 +330,13 @@ static int kvm_emulate_insn_handler(struct trace_seq *s, struct pevent_record *r
 static int kvm_nested_vmexit_inject_handler(struct trace_seq *s, struct pevent_record *record,
 					    struct event_format *event, void *context)
 {
-	unsigned long long val;
-
-	pevent_print_num_field(s, " rip %0x016llx", event, "rip", record, 1);
-
-	if (pevent_get_field_val(s, event, "exit_code", record, &val, 1) < 0)
+	if (print_exit_reason(s, record, event, "exit_code") < 0)
 		return -1;
 
-	trace_seq_printf(s, "reason %s", find_exit_reason(2, val));
-
-	pevent_print_num_field(s, " ext_inf1: %0x016llx", event, "exit_info1", record, 1);
-	pevent_print_num_field(s, " ext_inf2: %0x016llx", event, "exit_info2", record, 1);
-	pevent_print_num_field(s, " ext_int: %0x016llx", event, "exit_int_info", record, 1);
-	pevent_print_num_field(s, " ext_int_err: %0x016llx", event, "exit_int_info_err", record, 1);
+	pevent_print_num_field(s, " info1 %llx", event, "exit_info1", record, 1);
+	pevent_print_num_field(s, " info2 %llx", event, "exit_info2", record, 1);
+	pevent_print_num_field(s, " int_info %llx", event, "exit_int_info", record, 1);
+	pevent_print_num_field(s, " int_info_err %llx", event, "exit_int_info_err", record, 1);
 
 	return 0;
 }
@@ -350,7 +344,7 @@ static int kvm_nested_vmexit_inject_handler(struct trace_seq *s, struct pevent_r
 static int kvm_nested_vmexit_handler(struct trace_seq *s, struct pevent_record *record,
 				     struct event_format *event, void *context)
 {
-	pevent_print_num_field(s, " rip %0x016llx", event, "rip", record, 1);
+	pevent_print_num_field(s, "rip %lx ", event, "rip", record, 1);
 
 	return kvm_nested_vmexit_inject_handler(s, record, event, context);
 }
-- 
1.8.1.1.298.ge7eed54


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [tip:perf/core] tools lib traceevent: Factor out print_exit_reason in kvm plugin
  2014-01-04 17:19 ` [PATCH 2/3] trace-cmd: Factor out print_exit_reason in kvm plugin Jan Kiszka
@ 2014-06-25  5:48   ` tip-bot for Jan Kiszka
  0 siblings, 0 replies; 6+ messages in thread
From: tip-bot for Jan Kiszka @ 2014-06-25  5:48 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, jolsa, jan.kiszka, namhyung, rostedt, tglx

Commit-ID:  6f21037b3295d4ba20ad2cc7cd4073ec64440f8f
Gitweb:     http://git.kernel.org/tip/6f21037b3295d4ba20ad2cc7cd4073ec64440f8f
Author:     Jan Kiszka <jan.kiszka@siemens.com>
AuthorDate: Thu, 12 Jun 2014 22:10:04 -0400
Committer:  Jiri Olsa <jolsa@kernel.org>
CommitDate: Thu, 19 Jun 2014 18:18:20 +0200

tools lib traceevent: Factor out print_exit_reason in kvm plugin

We will reuse it for nested vmexit tracepoints.

Link: http://lkml.kernel.org/r/619c418c8af87f03027b8c8013b0443996605700.1388855989.git.jan.kiszka@web.de

Acked-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
 tools/lib/traceevent/plugin_kvm.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/tools/lib/traceevent/plugin_kvm.c b/tools/lib/traceevent/plugin_kvm.c
index 3e61220..2d7d1d7 100644
--- a/tools/lib/traceevent/plugin_kvm.c
+++ b/tools/lib/traceevent/plugin_kvm.c
@@ -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);
 

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [tip:perf/core] tools lib traceevent: Fix and cleanup kvm_nested_vmexit tracepoints
  2014-01-04 17:19 ` [PATCH 3/3] trace-cmd: Fix and cleanup kvm_nested_vmexit tracepoints Jan Kiszka
@ 2014-06-25  5:49   ` tip-bot for Jan Kiszka
  0 siblings, 0 replies; 6+ messages in thread
From: tip-bot for Jan Kiszka @ 2014-06-25  5:49 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, jolsa, jan.kiszka, namhyung, rostedt, tglx

Commit-ID:  7f6e3635db39fb2400dc515192125e7b73258000
Gitweb:     http://git.kernel.org/tip/7f6e3635db39fb2400dc515192125e7b73258000
Author:     Jan Kiszka <jan.kiszka@siemens.com>
AuthorDate: Thu, 12 Jun 2014 22:10:06 -0400
Committer:  Jiri Olsa <jolsa@kernel.org>
CommitDate: Thu, 19 Jun 2014 18:18:30 +0200

tools lib traceevent: Fix and cleanup kvm_nested_vmexit tracepoints

Fix several issues of kvm_nested_vmexit[_inject]: field width aren't
supported with pevent_print, rip was printed twice/incorrectly, SVM ISA
was hard-coded, we don't use ':' to separate field names.

Link: http://lkml.kernel.org/r/8e6c02b22ea8136c139a91c69d6cc73b8c5c184b.1388855989.git.jan.kiszka@web.de

Acked-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
 tools/lib/traceevent/plugin_kvm.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/tools/lib/traceevent/plugin_kvm.c b/tools/lib/traceevent/plugin_kvm.c
index 0d43783..0575e59 100644
--- a/tools/lib/traceevent/plugin_kvm.c
+++ b/tools/lib/traceevent/plugin_kvm.c
@@ -330,19 +330,13 @@ static int kvm_emulate_insn_handler(struct trace_seq *s,
 static int kvm_nested_vmexit_inject_handler(struct trace_seq *s, struct pevent_record *record,
 					    struct event_format *event, void *context)
 {
-	unsigned long long val;
-
-	pevent_print_num_field(s, " rip %0x016llx", event, "rip", record, 1);
-
-	if (pevent_get_field_val(s, event, "exit_code", record, &val, 1) < 0)
+	if (print_exit_reason(s, record, event, "exit_code") < 0)
 		return -1;
 
-	trace_seq_printf(s, "reason %s", find_exit_reason(2, val));
-
-	pevent_print_num_field(s, " ext_inf1: %0x016llx", event, "exit_info1", record, 1);
-	pevent_print_num_field(s, " ext_inf2: %0x016llx", event, "exit_info2", record, 1);
-	pevent_print_num_field(s, " ext_int: %0x016llx", event, "exit_int_info", record, 1);
-	pevent_print_num_field(s, " ext_int_err: %0x016llx", event, "exit_int_info_err", record, 1);
+	pevent_print_num_field(s, " info1 %llx", event, "exit_info1", record, 1);
+	pevent_print_num_field(s, " info2 %llx", event, "exit_info2", record, 1);
+	pevent_print_num_field(s, " int_info %llx", event, "exit_int_info", record, 1);
+	pevent_print_num_field(s, " int_info_err %llx", event, "exit_int_info_err", record, 1);
 
 	return 0;
 }
@@ -350,7 +344,7 @@ static int kvm_nested_vmexit_inject_handler(struct trace_seq *s, struct pevent_r
 static int kvm_nested_vmexit_handler(struct trace_seq *s, struct pevent_record *record,
 				     struct event_format *event, void *context)
 {
-	pevent_print_num_field(s, " rip %0x016llx", event, "rip", record, 1);
+	pevent_print_num_field(s, "rip %lx ", event, "rip", record, 1);
 
 	return kvm_nested_vmexit_inject_handler(s, record, event, context);
 }

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-06-25  5:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-04 17:19 [PATCH 0/3] trace-cmd: Updates for kvm plugin Jan Kiszka
2014-01-04 17:19 ` [PATCH 1/3] trace-cmd: Report unknown VMX exit reasons with code Jan Kiszka
2014-01-04 17:19 ` [PATCH 2/3] trace-cmd: Factor out print_exit_reason in kvm plugin Jan Kiszka
2014-06-25  5:48   ` [tip:perf/core] tools lib traceevent: " tip-bot for Jan Kiszka
2014-01-04 17:19 ` [PATCH 3/3] trace-cmd: Fix and cleanup kvm_nested_vmexit tracepoints Jan Kiszka
2014-06-25  5:49   ` [tip:perf/core] tools lib traceevent: " tip-bot for Jan Kiszka

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.