aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@linux.vnet.ibm.com>2011-07-22 07:46:53 -0400
committerAvi Kivity <avi@redhat.com>2011-09-25 12:17:59 -0400
commit0d460ffc0956d2dbe12ca9f5f6aa0f8701ea9d73 (patch)
tree043ba67b92ac023b36bde109f15f5cff9d1c0091 /arch/x86/include/asm
parente097e5ffd69cbd7be61466e2d54c145468d48073 (diff)
KVM: Use __print_symbolic() for vmexit tracepoints
The vmexit tracepoints format the exit_reason to make it human-readable. Since the exit_reason depends on the instruction set (vmx or svm), formatting is handled with ftrace_print_symbols_seq() by referring to the appropriate exit reason table. However, the ftrace_print_symbols_seq() function is not meant to be used directly in tracepoints since it does not export the formatting table which userspace tools like trace-cmd and perf use to format traces. In practice perf dies when formatting vmexit-related events and trace-cmd falls back to printing the numeric value (with extra formatting code in the kvm plugin to paper over this limitation). Other userspace consumers of vmexit-related tracepoints would be in similar trouble. To avoid significant changes to the kvm_exit tracepoint, this patch moves the vmx and svm exit reason tables into arch/x86/kvm/trace.h and selects the right table with __print_symbolic() depending on the instruction set. Note that __print_symbolic() is designed for exporting the formatting table to userspace and allows trace-cmd and perf to work. Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/include/asm')
-rw-r--r--arch/x86/include/asm/kvm_host.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index c00ec28e7147..307e3cfa28ad 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -635,8 +635,6 @@ struct kvm_x86_ops {
635 int (*check_intercept)(struct kvm_vcpu *vcpu, 635 int (*check_intercept)(struct kvm_vcpu *vcpu,
636 struct x86_instruction_info *info, 636 struct x86_instruction_info *info,
637 enum x86_intercept_stage stage); 637 enum x86_intercept_stage stage);
638
639 const struct trace_print_flags *exit_reasons_str;
640}; 638};
641 639
642struct kvm_arch_async_pf { 640struct kvm_arch_async_pf {