All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: kvm@vger.kernel.org
Subject: [PATCH 40/42] KVM: SVM: Add tracepoint for nested vmrun
Date: Mon, 16 Nov 2009 14:19:41 +0200	[thread overview]
Message-ID: <1258373983-8693-41-git-send-email-avi@redhat.com> (raw)
In-Reply-To: <1258373983-8693-1-git-send-email-avi@redhat.com>

From: Joerg Roedel <joerg.roedel@amd.com>

This patch adds a dedicated kvm tracepoint for a nested
vmrun.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
 arch/x86/kvm/svm.c   |    6 ++++++
 arch/x86/kvm/trace.h |   33 +++++++++++++++++++++++++++++++++
 arch/x86/kvm/x86.c   |    1 +
 3 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 884bffc..907af3f 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1726,6 +1726,12 @@ static bool nested_svm_vmrun(struct vcpu_svm *svm)
 	/* nested_vmcb is our indicator if nested SVM is activated */
 	svm->nested.vmcb = svm->vmcb->save.rax;
 
+	trace_kvm_nested_vmrun(svm->vmcb->save.rip - 3, svm->nested.vmcb,
+			       nested_vmcb->save.rip,
+			       nested_vmcb->control.int_ctl,
+			       nested_vmcb->control.event_inj,
+			       nested_vmcb->control.nested_ctl);
+
 	/* Clear internal status */
 	kvm_clear_exception_queue(&svm->vcpu);
 	kvm_clear_interrupt_queue(&svm->vcpu);
diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h
index 0d480e7..b5798e1 100644
--- a/arch/x86/kvm/trace.h
+++ b/arch/x86/kvm/trace.h
@@ -349,6 +349,39 @@ TRACE_EVENT(kvm_apic_accept_irq,
 		  __entry->coalesced ? " (coalesced)" : "")
 );
 
+/*
+ * Tracepoint for nested VMRUN
+ */
+TRACE_EVENT(kvm_nested_vmrun,
+	    TP_PROTO(__u64 rip, __u64 vmcb, __u64 nested_rip, __u32 int_ctl,
+		     __u32 event_inj, bool npt),
+	    TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, npt),
+
+	TP_STRUCT__entry(
+		__field(	__u64,		rip		)
+		__field(	__u64,		vmcb		)
+		__field(	__u64,		nested_rip	)
+		__field(	__u32,		int_ctl		)
+		__field(	__u32,		event_inj	)
+		__field(	bool,		npt		)
+	),
+
+	TP_fast_assign(
+		__entry->rip		= rip;
+		__entry->vmcb		= vmcb;
+		__entry->nested_rip	= nested_rip;
+		__entry->int_ctl	= int_ctl;
+		__entry->event_inj	= event_inj;
+		__entry->npt		= npt;
+	),
+
+	TP_printk("rip: 0x%016llx vmcb: 0x%016llx nrip: 0x%016llx int_ctl: 0x%08x "
+		  "event_inj: 0x%08x npt: %s\n",
+		__entry->rip, __entry->vmcb, __entry->nested_rip,
+		__entry->int_ctl, __entry->event_inj,
+		__entry->npt ? "on" : "off")
+);
+
 #endif /* _TRACE_KVM_H */
 
 /* This part must be outside protection */
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 4de5bc0..3ab2f90 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -4984,3 +4984,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_inj_virq);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_page_fault);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_msr);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_cr);
+EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_vmrun);
-- 
1.6.5.2


  parent reply	other threads:[~2009-11-16 12:22 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-16 12:19 [PATCH 00/42] KVM updates for the 2.6.33 merge window (batch 1/2) Avi Kivity
2009-11-16 12:19 ` [PATCH 01/42] core, x86: Add user return notifiers Avi Kivity
2009-11-16 12:19 ` [PATCH 02/42] x86: Fix user return notifier build Avi Kivity
2009-11-16 12:19 ` [PATCH 03/42] x86: Fix user return notifier put_cpu_var() invocation Avi Kivity
2009-11-16 12:19 ` [PATCH 04/42] KVM: Don't wrap schedule() with vcpu_put()/vcpu_load() Avi Kivity
2009-11-16 12:19 ` [PATCH 05/42] KVM: x86 emulator: Add 'push/pop sreg' instructions Avi Kivity
2009-11-16 12:19 ` [PATCH 06/42] KVM: x86 emulator: Introduce No64 decode option Avi Kivity
2009-11-16 12:19 ` [PATCH 07/42] KVM: Don't pass kvm_run arguments Avi Kivity
2009-11-16 12:19 ` [PATCH 08/42] KVM: Call pic_clear_isr() on pic reset to reuse logic there Avi Kivity
2009-11-16 12:19 ` [PATCH 09/42] KVM: Move irq sharing information to irqchip level Avi Kivity
2009-11-16 12:19 ` [PATCH 10/42] KVM: Change irq routing table to use gsi indexed array Avi Kivity
2009-11-16 12:19 ` [PATCH 11/42] KVM: Maintain back mapping from irqchip/pin to gsi Avi Kivity
2009-11-16 12:19 ` [PATCH 12/42] KVM: Move irq routing data structure to rcu locking Avi Kivity
2009-11-16 12:19 ` [PATCH 13/42] KVM: Move irq ack notifier list to arch independent code Avi Kivity
2009-11-16 12:19 ` [PATCH 14/42] KVM: Convert irq notifiers lists to RCU locking Avi Kivity
2009-11-16 12:19 ` [PATCH 15/42] KVM: Move IO APIC to its own lock Avi Kivity
2009-11-16 12:19 ` [PATCH 16/42] KVM: Drop kvm->irq_lock lock from irq injection path Avi Kivity
2009-11-16 12:19 ` [PATCH 17/42] KVM: Return -ENOTTY on unrecognized ioctls Avi Kivity
2009-11-16 12:19 ` [PATCH 18/42] KVM: Move assigned device code to own file Avi Kivity
2009-11-16 12:19 ` [PATCH 19/42] KVM: x86 emulator: Add missing decoder flags for 'or' instructions Avi Kivity
2009-11-16 12:19 ` [PATCH 20/42] KVM: x86 emulator: Add pusha and popa instructions Avi Kivity
2009-11-16 12:19 ` [PATCH 21/42] KVM: VMX: Enhance invalid guest state emulation Avi Kivity
2009-11-16 12:19 ` [PATCH 22/42] KVM: SVM: remove needless mmap_sem acquision from nested_svm_map Avi Kivity
2009-11-16 12:19 ` [PATCH 23/42] KVM: Activate Virtualization On Demand Avi Kivity
2010-03-17 21:57   ` Dieter Ries
2010-03-17 22:02     ` Alexander Graf
2010-03-17 22:40       ` Dieter Ries
2010-03-17 22:47         ` Alexander Graf
2010-03-18  7:11           ` Dieter Ries
2010-03-18  7:17             ` Alexander Graf
2010-03-19  2:26               ` Dieter Ries
2010-08-08 12:02               ` Serge Belyshev
2010-08-16 13:24                 ` Alexander Graf
2010-08-16 13:49                   ` Serge Belyshev
2010-08-16 14:13                     ` Alexander Graf
2010-03-18  5:41         ` Michael Tokarev
2010-03-18  7:04           ` Dieter Ries
2009-11-16 12:19 ` [PATCH 24/42] KVM: remove duplicated #include Avi Kivity
2009-11-16 12:19 ` [PATCH 25/42] KVM: SVM: reorganize svm_interrupt_allowed Avi Kivity
2009-11-16 12:19 ` [PATCH 26/42] KVM: SVM: don't copy exit_int_info on nested vmrun Avi Kivity
2009-11-16 12:19 ` [PATCH 27/42] KVM: SVM: Remove remaining occurences of rdtscll Avi Kivity
2009-11-16 12:19 ` [PATCH 28/42] KVM: fix lock imbalance in kvm_*_irq_source_id() Avi Kivity
2009-11-16 12:19 ` [PATCH 29/42] KVM: Separate timer intialization into an indepedent function Avi Kivity
2009-11-16 12:19 ` [PATCH 30/42] KVM: Kill the confusing tsc_ref_khz and ref_freq variables Avi Kivity
2009-11-16 12:19 ` [PATCH 31/42] KVM: Fix printk name error in svm.c Avi Kivity
2009-11-16 12:19 ` [PATCH 32/42] KVM: Fix hotplug of CPUs Avi Kivity
2009-11-16 12:19 ` [PATCH 33/42] KVM: remove pre_task_link setting in save_state_to_tss16 Avi Kivity
2009-11-16 12:19 ` [PATCH 34/42] KVM: x86: Refactor guest debug IOCTL handling Avi Kivity
2009-11-16 12:19 ` [PATCH 35/42] KVM: x86: disable paravirt mmu reporting Avi Kivity
2009-11-16 12:19 ` [PATCH 36/42] KVM: x86: Rework guest single-step flag injection and filtering Avi Kivity
2009-11-16 12:19 ` [PATCH 37/42] KVM: x86: include pvclock MSRs in msrs_to_save Avi Kivity
2009-11-16 12:19 ` [PATCH 38/42] KVM: SVM: Notify nested hypervisor of lost event injections Avi Kivity
2009-11-16 12:19 ` [PATCH 39/42] KVM: SVM: Move INTR vmexit out of atomic code Avi Kivity
2009-11-16 12:19 ` Avi Kivity [this message]
2009-11-16 12:19 ` [PATCH 41/42] KVM: SVM: Add tracepoint for nested #vmexit Avi Kivity
2009-11-16 12:19 ` [PATCH 42/42] KVM: SVM: Add tracepoint for injected #vmexit Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1258373983-8693-41-git-send-email-avi@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.