KVM: x86: Add requested index to the CPUID tracepoint

Output the requested index when tracing CPUID emulation; it's basically
mandatory for leafs where the index is meaningful, and is helpful for
verifying KVM correctness even when the index isn't meaningful, e.g. the
trace for a Linux guest's hypervisor_cpuid_base() probing appears to
be broken (returns all zeroes) at first glance, but is correct because
the index is non-zero, i.e. the output values correspond to a random
index in the maximum basic leaf.

Suggested-by: Xiaoyao Li <xiaoyao.li@intel.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Sean Christopherson
2020-03-17 12:53:53 -07:00
committed by Paolo Bonzini
parent d55c9d4009
commit e7adda2810
2 changed files with 9 additions and 6 deletions

View File

@@ -1026,7 +1026,7 @@ bool kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx,
}
}
}
trace_kvm_cpuid(orig_function, *eax, *ebx, *ecx, *edx, exact);
trace_kvm_cpuid(orig_function, index, *eax, *ebx, *ecx, *edx, exact);
return exact;
}
EXPORT_SYMBOL_GPL(kvm_cpuid);