OSDN Git Service

KVM: x86: Use u64 for address and error code in page fault tracepoint
authorSean Christopherson <seanjc@google.com>
Tue, 30 Aug 2022 19:26:24 +0000 (12:26 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 26 Sep 2022 16:02:31 +0000 (12:02 -0400)
Track the address and error code as 64-bit values in the page fault
tracepoint.  When TDP is enabled, the address is a GPA and thus can be a
64-bit value even on 32-bit hosts.  And SVM's #NPF genereates 64-bit
error codes.

Opportunistically clean up the formatting.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/trace.h

index 331bdb0..c369ebc 100644 (file)
@@ -394,15 +394,14 @@ TRACE_EVENT(kvm_inj_exception,
  * Tracepoint for page fault.
  */
 TRACE_EVENT(kvm_page_fault,
-       TP_PROTO(struct kvm_vcpu *vcpu, unsigned long fault_address,
-                unsigned int error_code),
+       TP_PROTO(struct kvm_vcpu *vcpu, u64 fault_address, u64 error_code),
        TP_ARGS(vcpu, fault_address, error_code),
 
        TP_STRUCT__entry(
                __field(        unsigned int,   vcpu_id         )
                __field(        unsigned long,  guest_rip       )
-               __field(        unsigned long,  fault_address   )
-               __field(        unsigned int,   error_code      )
+               __field(        u64,            fault_address   )
+               __field(        u64,            error_code      )
        ),
 
        TP_fast_assign(
@@ -412,7 +411,7 @@ TRACE_EVENT(kvm_page_fault,
                __entry->error_code     = error_code;
        ),
 
-       TP_printk("vcpu %u rip 0x%lx address 0x%lx error_code %x",
+       TP_printk("vcpu %u rip 0x%lx address 0x%016llx error_code 0x%llx",
                  __entry->vcpu_id, __entry->guest_rip,
                  __entry->fault_address, __entry->error_code)
 );