Re: [PATCH 2/4] KVM: Use __print_hex() for kvm_emulate_insn tracepoint

Avi Kivity
2012-06-27T12:54:54Z

On 06/27/2012 03:49 PM, Steven Rostedt wrote:
> [ Added Avi]
>
> On Wed, 2012-06-27 at 09:41 +0900, Namhyung Kim wrote:
>> From: Namhyung Kim <namhyung.kim@lge.com>
>>
>> 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)
>
> Avi, can you give your Acked-by for this change?

Acked-by: Avi Kivity <avi@redhat.com>

Some time ago we discussed moving the trace-cmd plugins to /lib/modules,
which would make this trace display as "mov %edx,(%eax)" instead of "89
10", even for non-trace-cmd users. Was there any movement on this?

--
error compiling committee.c: too many arguments to function