trace-cmd: Report unknown VMX exit reasons with code
PATCH 1/1 trace-cmd: Report unknown VMX exit reasons with code
From: Jan Kiszka <[email protected]>
Allows to parse the result even if the KVM plugin does not yet understand a specific exit code.
--- plugin_kvm.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-)
plugin_kvm.c +8 -4
@@ -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 );
Signature · 1 line
1.7.3.4
Quoted 38 lines · Jan Kiszka
From: Jan Kiszka <[email protected]>
Allows to parse the result even if the KVM plugin does not yet understand a specific exit code.
Signed-off-by Jan Kiszka <[email protected]>--- plugin_kvm.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-)plugin_kvm.c +3
-3@@ -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 ;
plugin_kvm.c static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record, · line 268
Quoted 10 lines
plugin_kvm.c +5
-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 );
Ping. While my other patch of that time was merged, this one didn't make it yet. Any open issues?
Jan
Quoted 2 lines · On Fri, 04 Oct 2013 15:40:29 +0200 Jan Kiszka <[email protected]> wrote:
Ping. While my other patch of that time was merged, this one didn't make it yet. Any open issues?
Hmm, no. Not sure how I missed this one. Probably because it didn't have the 2/2 patch format and I thought there was only one patch?
I'll queue it up.
Thanks!
-- Steve
tip-bot for Jan Kiszka
merge bot[tip:perf/core] tools lib traceevent: Report unknown VMX exit reasons with code
In reply to Jan Kiszkatools lib traceevent: Report unknown VMX exit reasons with code
Commit-ID: 20d3cbd75ef17b96dfb4f5f1600c0278d330f5ca Gitweb: http://git.kernel.org/tip/20d3cbd75ef17b96dfb4f5f1600c0278d330f5ca Author: Jan Kiszka <[email protected]> AuthorDate: Thu, 12 Jun 2014 22:10:03 -0400 Committer: Jiri Olsa <[email protected]> CommitDate: Thu, 19 Jun 2014 18:17:54 +0200
tools lib traceevent: Report unknown VMX exit reasons with code
Allows to parse the result even if the KVM plugin does not yet understand a specific exit code.
--- tools/lib/traceevent/plugin_kvm.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
tools/lib/traceevent/plugin_kvm.c +8 -4
@@ -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 );