Re: [PATCH v2 2/3] KVM: nVMX: add kvm_nested_vmlaunch_resume tracepoint

From: Paolo Bonzini
Date: Fri Jan 15 2021 - 08:50:13 EST


On 15/01/21 01:14, Sean Christopherson wrote:
+ trace_kvm_nested_vmlaunch_resume(kvm_rip_read(vcpu),
Hmm, won't this RIP be wrong for the migration case? I.e. it'll be L2, not L1
as is the case for the "true" nested VM-Enter path.

It will be the previous RIP---might as well be 0xfffffff0 depending on what userspace does. I don't think you can do much better than that, using vmcs12->host_rip would be confusing in the SMM case.

+ vmx->nested.current_vmptr,
+ vmcs12->guest_rip,
+ vmcs12->vm_entry_intr_info_field);
The placement is a bit funky. I assume you put it here so that calls from
vmx_set_nested_state() also get traced. But, that also means
vmx_pre_leave_smm() will get traced, and it also creates some weirdness where
some nested VM-Enters that VM-Fail will get traced, but others will not.

Tracing vmx_pre_leave_smm() isn't necessarily bad, but it could be confusing,
especially if the debugger looks up the RIP and sees RSM. Ditto for the
migration case.

Actually tracing vmx_pre_leave_smm() is good, and pointing to RSM makes sense so I'm not worried about that.

Paolo