aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRadim Krčmář <rkrcmar@redhat.com>2014-08-21 12:08:09 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2014-08-21 12:45:23 -0400
commit7b46268d29543e313e731606d845e65c17f232e4 (patch)
tree86571a9b8ed4dd0972a15cec127945b1a2138807
parentb4a2d31da812ce03efaf5d30c6b9d39c1cbd18d8 (diff)
KVM: trace kvm_ple_window grow/shrink
Tracepoint for dynamic PLE window, fired on every potential change. Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--arch/x86/kvm/trace.h30
-rw-r--r--arch/x86/kvm/vmx.c4
-rw-r--r--arch/x86/kvm/x86.c1
3 files changed, 35 insertions, 0 deletions
diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h
index e850a7d332be..1742dfbd26b3 100644
--- a/arch/x86/kvm/trace.h
+++ b/arch/x86/kvm/trace.h
@@ -848,6 +848,36 @@ TRACE_EVENT(kvm_track_tsc,
848 __print_symbolic(__entry->host_clock, host_clocks)) 848 __print_symbolic(__entry->host_clock, host_clocks))
849); 849);
850 850
851TRACE_EVENT(kvm_ple_window,
852 TP_PROTO(bool grow, unsigned int vcpu_id, int new, int old),
853 TP_ARGS(grow, vcpu_id, new, old),
854
855 TP_STRUCT__entry(
856 __field( bool, grow )
857 __field( unsigned int, vcpu_id )
858 __field( int, new )
859 __field( int, old )
860 ),
861
862 TP_fast_assign(
863 __entry->grow = grow;
864 __entry->vcpu_id = vcpu_id;
865 __entry->new = new;
866 __entry->old = old;
867 ),
868
869 TP_printk("vcpu %u: ple_window %d (%s %d)",
870 __entry->vcpu_id,
871 __entry->new,
872 __entry->grow ? "grow" : "shrink",
873 __entry->old)
874);
875
876#define trace_kvm_ple_window_grow(vcpu_id, new, old) \
877 trace_kvm_ple_window(true, vcpu_id, new, old)
878#define trace_kvm_ple_window_shrink(vcpu_id, new, old) \
879 trace_kvm_ple_window(false, vcpu_id, new, old)
880
851#endif /* CONFIG_X86_64 */ 881#endif /* CONFIG_X86_64 */
852 882
853#endif /* _TRACE_KVM_H */ 883#endif /* _TRACE_KVM_H */
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index baeac7f580a7..661abc2f7049 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -5738,6 +5738,8 @@ static void grow_ple_window(struct kvm_vcpu *vcpu)
5738 5738
5739 if (vmx->ple_window != old) 5739 if (vmx->ple_window != old)
5740 vmx->ple_window_dirty = true; 5740 vmx->ple_window_dirty = true;
5741
5742 trace_kvm_ple_window_grow(vcpu->vcpu_id, vmx->ple_window, old);
5741} 5743}
5742 5744
5743static void shrink_ple_window(struct kvm_vcpu *vcpu) 5745static void shrink_ple_window(struct kvm_vcpu *vcpu)
@@ -5750,6 +5752,8 @@ static void shrink_ple_window(struct kvm_vcpu *vcpu)
5750 5752
5751 if (vmx->ple_window != old) 5753 if (vmx->ple_window != old)
5752 vmx->ple_window_dirty = true; 5754 vmx->ple_window_dirty = true;
5755
5756 trace_kvm_ple_window_shrink(vcpu->vcpu_id, vmx->ple_window, old);
5753} 5757}
5754 5758
5755/* 5759/*
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 575d3fc67e7e..c10408ef9ab1 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -7673,3 +7673,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_invlpga);
7673EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_skinit); 7673EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_skinit);
7674EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_intercepts); 7674EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_intercepts);
7675EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_write_tsc_offset); 7675EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_write_tsc_offset);
7676EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_ple_window);