Skip to content

Commit

Permalink
KVM: Move kvm_exit tracepoint rip reading inside tracepoint
Browse files Browse the repository at this point in the history
Reading rip is expensive on vmx, so move it inside the tracepoint so we only
incur the cost if tracing is enabled.

Signed-off-by: Avi Kivity <avi@redhat.com>
  • Loading branch information
Avi Kivity committed May 17, 2010
1 parent d4f64b6 commit 5bfd8b5
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion arch/x86/kvm/svm.c
Original file line number Diff line number Diff line change
Expand Up @@ -2686,7 +2686,7 @@ static int handle_exit(struct kvm_vcpu *vcpu)
struct kvm_run *kvm_run = vcpu->run;
u32 exit_code = svm->vmcb->control.exit_code;

trace_kvm_exit(exit_code, svm->vmcb->save.rip);
trace_kvm_exit(exit_code, vcpu);

if (unlikely(svm->nested.exit_required)) {
nested_svm_vmexit(svm);
Expand Down
6 changes: 3 additions & 3 deletions arch/x86/kvm/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,8 @@ TRACE_EVENT(kvm_apic,
* Tracepoint for kvm guest exit:
*/
TRACE_EVENT(kvm_exit,
TP_PROTO(unsigned int exit_reason, unsigned long guest_rip),
TP_ARGS(exit_reason, guest_rip),
TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu),
TP_ARGS(exit_reason, vcpu),

TP_STRUCT__entry(
__field( unsigned int, exit_reason )
Expand All @@ -192,7 +192,7 @@ TRACE_EVENT(kvm_exit,

TP_fast_assign(
__entry->exit_reason = exit_reason;
__entry->guest_rip = guest_rip;
__entry->guest_rip = kvm_rip_read(vcpu);
),

TP_printk("reason %s rip 0x%lx",
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kvm/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -3612,7 +3612,7 @@ static int vmx_handle_exit(struct kvm_vcpu *vcpu)
u32 exit_reason = vmx->exit_reason;
u32 vectoring_info = vmx->idt_vectoring_info;

trace_kvm_exit(exit_reason, kvm_rip_read(vcpu));
trace_kvm_exit(exit_reason, vcpu);

/* If guest state is invalid, start emulating */
if (vmx->emulation_required && emulate_invalid_guest_state)
Expand Down

0 comments on commit 5bfd8b5

Please sign in to comment.