Commit b102f1d0f1cd0bb5ec82e5aeb1e33502d6ad6710
Committed by
Steven Rostedt
1 parent
0be61ebc18
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
tracing/kvm: Use __print_hex() for kvm_emulate_insn tracepoint
The kvm_emulate_insn tracepoint used __print_insn() for printing its instructions. However it makes the format of the event hard to parse as it reveals TP internals. Fortunately, kernel provides __print_hex for almost same purpose, we can use it instead of open coding it. The user-space can be changed to parse it later. That means raw kernel tracing will not be affected by this change: # cd /sys/kernel/debug/tracing/ # cat events/kvm/kvm_emulate_insn/format name: kvm_emulate_insn ID: 29 format: ... print fmt: "%x:%llx:%s (%s)%s", REC->csbase, REC->rip, __print_hex(REC->insn, REC->len), \ __print_symbolic(REC->flags, { 0, "real" }, { (1 << 0) | (1 << 1), "vm16" }, \ { (1 << 0), "prot16" }, { (1 << 0) | (1 << 2), "prot32" }, { (1 << 0) | (1 << 3), "prot64" }), \ REC->failed ? " failed" : "" # echo 1 > events/kvm/kvm_emulate_insn/enable # cat trace # tracer: nop # # entries-in-buffer/entries-written: 2183/2183 #P:12 # # _-----=> irqs-off # / _----=> need-resched # | / _---=> hardirq/softirq # || / _--=> preempt-depth # ||| / delay # TASK-PID CPU# |||| TIMESTAMP FUNCTION # | | | |||| | | qemu-kvm-1782 [002] ...1 140.931636: kvm_emulate_insn: 0:c102fa25:89 10 (prot32) qemu-kvm-1781 [004] ...1 140.931637: kvm_emulate_insn: 0:c102fa25:89 10 (prot32) Link: http://lkml.kernel.org/n/tip-wfw6y3b9ugtey8snaow9nmg5@git.kernel.org Link: http://lkml.kernel.org/r/1340757701-10711-2-git-send-email-namhyung@kernel.org Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Ingo Molnar <mingo@kernel.org> Cc: Namhyung Kim <namhyung.kim@lge.com> Cc: kvm@vger.kernel.org Acked-by: Avi Kivity <avi@redhat.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Showing 2 changed files with 2 additions and 11 deletions Side-by-side Diff
arch/x86/kvm/trace.h
... | ... | @@ -710,16 +710,6 @@ |
710 | 710 | __entry->rip, __entry->slb) |
711 | 711 | ); |
712 | 712 | |
713 | -#define __print_insn(insn, ilen) ({ \ | |
714 | - int i; \ | |
715 | - const char *ret = p->buffer + p->len; \ | |
716 | - \ | |
717 | - for (i = 0; i < ilen; ++i) \ | |
718 | - trace_seq_printf(p, " %02x", insn[i]); \ | |
719 | - trace_seq_printf(p, "%c", 0); \ | |
720 | - ret; \ | |
721 | - }) | |
722 | - | |
723 | 713 | #define KVM_EMUL_INSN_F_CR0_PE (1 << 0) |
724 | 714 | #define KVM_EMUL_INSN_F_EFL_VM (1 << 1) |
725 | 715 | #define KVM_EMUL_INSN_F_CS_D (1 << 2) |
... | ... | @@ -786,7 +776,7 @@ |
786 | 776 | |
787 | 777 | TP_printk("%x:%llx:%s (%s)%s", |
788 | 778 | __entry->csbase, __entry->rip, |
789 | - __print_insn(__entry->insn, __entry->len), | |
779 | + __print_hex(__entry->insn, __entry->len), | |
790 | 780 | __print_symbolic(__entry->flags, |
791 | 781 | kvm_trace_symbol_emul_flags), |
792 | 782 | __entry->failed ? " failed" : "" |