KVM: SVM: Add kvm_nested_intercepts tracepoint
This patch adds a tracepoint to get information about the most important intercept bitmasks from the nested vmcb. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
@@ -1845,6 +1845,11 @@ static bool nested_svm_vmrun(struct vcpu_svm *svm)
|
|||||||
nested_vmcb->control.event_inj,
|
nested_vmcb->control.event_inj,
|
||||||
nested_vmcb->control.nested_ctl);
|
nested_vmcb->control.nested_ctl);
|
||||||
|
|
||||||
|
trace_kvm_nested_intercepts(nested_vmcb->control.intercept_cr_read,
|
||||||
|
nested_vmcb->control.intercept_cr_write,
|
||||||
|
nested_vmcb->control.intercept_exceptions,
|
||||||
|
nested_vmcb->control.intercept);
|
||||||
|
|
||||||
/* Clear internal status */
|
/* Clear internal status */
|
||||||
kvm_clear_exception_queue(&svm->vcpu);
|
kvm_clear_exception_queue(&svm->vcpu);
|
||||||
kvm_clear_interrupt_queue(&svm->vcpu);
|
kvm_clear_interrupt_queue(&svm->vcpu);
|
||||||
|
@@ -419,6 +419,28 @@ TRACE_EVENT(kvm_nested_vmrun,
|
|||||||
__entry->npt ? "on" : "off")
|
__entry->npt ? "on" : "off")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
TRACE_EVENT(kvm_nested_intercepts,
|
||||||
|
TP_PROTO(__u16 cr_read, __u16 cr_write, __u32 exceptions, __u64 intercept),
|
||||||
|
TP_ARGS(cr_read, cr_write, exceptions, intercept),
|
||||||
|
|
||||||
|
TP_STRUCT__entry(
|
||||||
|
__field( __u16, cr_read )
|
||||||
|
__field( __u16, cr_write )
|
||||||
|
__field( __u32, exceptions )
|
||||||
|
__field( __u64, intercept )
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_fast_assign(
|
||||||
|
__entry->cr_read = cr_read;
|
||||||
|
__entry->cr_write = cr_write;
|
||||||
|
__entry->exceptions = exceptions;
|
||||||
|
__entry->intercept = intercept;
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_printk("cr_read: %04x cr_write: %04x excp: %08x intercept: %016llx",
|
||||||
|
__entry->cr_read, __entry->cr_write, __entry->exceptions,
|
||||||
|
__entry->intercept)
|
||||||
|
);
|
||||||
/*
|
/*
|
||||||
* Tracepoint for #VMEXIT while nested
|
* Tracepoint for #VMEXIT while nested
|
||||||
*/
|
*/
|
||||||
|
@@ -5909,3 +5909,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_vmexit_inject);
|
|||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_intr_vmexit);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_intr_vmexit);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_invlpga);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_invlpga);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_skinit);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_skinit);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_intercepts);
|
||||||
|
Reference in New Issue
Block a user