Message ID | 20220423021411.784383-9-seanjc@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: SVM: Fix soft int/ex re-injection | expand |
On Sat, 2022-04-23 at 02:14 +0000, Sean Christopherson wrote: > Print the error code in the exception injection tracepoint if and only if > the exception has an error code. Define the entire error code sequence > as a set of formatted strings, print empty strings if there's no error > code, and abuse __print_symbolic() by passing it an empty array to coerce > it into printing the error code as a hex string. > > Signed-off-by: Sean Christopherson <seanjc@google.com> > --- > arch/x86/kvm/trace.h | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h > index d07428e660e3..385436d12024 100644 > --- a/arch/x86/kvm/trace.h > +++ b/arch/x86/kvm/trace.h > @@ -376,10 +376,11 @@ TRACE_EVENT(kvm_inj_exception, > __entry->reinjected = reinjected; > ), > > - TP_printk("%s (0x%x)%s", > + TP_printk("%s%s%s%s%s", > __print_symbolic(__entry->exception, kvm_trace_sym_exc), > - /* FIXME: don't print error_code if not present */ > - __entry->has_error ? __entry->error_code : 0, > + !__entry->has_error ? "" : " (", > + !__entry->has_error ? "" : __print_symbolic(__entry->error_code, { }), > + !__entry->has_error ? "" : ")", > __entry->reinjected ? " [reinjected]" : "") > ); > Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Good idea to do it in few more places, I'll keep that in mind. Best regards, Maxim Levitsky
diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h index d07428e660e3..385436d12024 100644 --- a/arch/x86/kvm/trace.h +++ b/arch/x86/kvm/trace.h @@ -376,10 +376,11 @@ TRACE_EVENT(kvm_inj_exception, __entry->reinjected = reinjected; ), - TP_printk("%s (0x%x)%s", + TP_printk("%s%s%s%s%s", __print_symbolic(__entry->exception, kvm_trace_sym_exc), - /* FIXME: don't print error_code if not present */ - __entry->has_error ? __entry->error_code : 0, + !__entry->has_error ? "" : " (", + !__entry->has_error ? "" : __print_symbolic(__entry->error_code, { }), + !__entry->has_error ? "" : ")", __entry->reinjected ? " [reinjected]" : "") );
Print the error code in the exception injection tracepoint if and only if the exception has an error code. Define the entire error code sequence as a set of formatted strings, print empty strings if there's no error code, and abuse __print_symbolic() by passing it an empty array to coerce it into printing the error code as a hex string. Signed-off-by: Sean Christopherson <seanjc@google.com> --- arch/x86/kvm/trace.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)