Index: trunk/src/VBox/VMM/Makefile.kmk
===================================================================
--- trunk/src/VBox/VMM/Makefile.kmk	(revision 40561)
+++ trunk/src/VBox/VMM/Makefile.kmk	(revision 40595)
@@ -237,5 +237,5 @@
  VBoxVMM_USES        += dtrace
  VBoxVMM_DEFS        += VBOX_WITH_DTRACE VBOX_WITH_DTRACE_R3
- VBoxVMM_SOURCES     += VMMR3/VBoxVMM.d
+ VBoxVMM_SOURCES     += VBoxVMM.d
 endif
 
@@ -467,4 +467,5 @@
  VMMR0_SOURCES   = \
  	VMMR0/CPUMR0.cpp \
+ 	VBoxVMM.d \
  	VMMR0/CPUMR0A.asm \
  	VMMR0/GMMR0.cpp \
Index: trunk/src/VBox/VMM/VBoxVMM.d
===================================================================
--- trunk/src/VBox/VMM/VBoxVMM.d	(revision 40595)
+++ trunk/src/VBox/VMM/VBoxVMM.d	(revision 40595)
@@ -0,0 +1,37 @@
+/* $Id$ */
+/** @file
+ * VBoxVMM - Static ring-3 dtrace probes.
+ */
+
+/*
+ * Copyright (C) 2009-2012 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+provider vboxvmm
+{
+    probe em__state__changed(void *a_pVCpu, int a_enmOldState, int a_enmNewState, int a_rc);
+    probe em__state__unchanged(void *a_pVCpu, int a_enmState, int a_rc);
+    probe em__raw__run__pre(void *a_pVCpu, void *a_pCtx);
+    probe em__raw__run__ret(void *a_pVCpu, void *a_pCtx, int a_rc);
+    probe em__ff__high(void *a_pVCpu, unsigned int a_fGlobal, unsigned int a_fLocal, int a_rc);
+    probe em__ff__all(void *a_pVCpu, unsigned int a_fGlobal, unsigned int a_fLocal, int a_rc);
+    probe em__ff__all_ret(void *a_pVCpu, int a_rc);
+    probe em__ff__raw(void *a_pVCpu, unsigned int a_fGlobal, unsigned int a_fLocal);
+    probe em__ff__raw_ret(void *a_pVCpu, int a_rc);
+    probe r0__gvmm__vm__created(void *a_pGVM, void *a_pVM, unsigned int a_Pid, void *a_hEMT0, unsigned int a_cCpus);
+};
+
+#pragma D attributes Evolving/Evolving/Common provider vboxvmm provider
+#pragma D attributes Private/Private/Unknown  provider vboxvmm module
+#pragma D attributes Private/Private/Unknown  provider vboxvmm function
+#pragma D attributes Evolving/Evolving/Common provider vboxvmm name
+#pragma D attributes Evolving/Evolving/Common provider vboxvmm args
+
Index: trunk/src/VBox/VMM/VMMR0/GVMMR0.cpp
===================================================================
--- trunk/src/VBox/VMM/VMMR0/GVMMR0.cpp	(revision 40561)
+++ trunk/src/VBox/VMM/VMMR0/GVMMR0.cpp	(revision 40595)
@@ -60,4 +60,5 @@
 #include <VBox/param.h>
 #include <VBox/err.h>
+
 #include <iprt/asm.h>
 #include <iprt/asm-amd64-x86.h>
@@ -77,4 +78,6 @@
 #include <iprt/spinlock.h>
 #include <iprt/timer.h>
+
+#include "dtrace/VBoxVMM.h"
 
 
@@ -751,5 +754,5 @@
     RTNATIVETHREAD hEMT0 = RTThreadNativeSelf();
     AssertReturn(hEMT0 != NIL_RTNATIVETHREAD, VERR_GVMM_BROKEN_IPRT);
-    RTNATIVETHREAD ProcId = RTProcSelf();
+    RTPROCESS      ProcId = RTProcSelf();
     AssertReturn(ProcId != NIL_RTPROCESS, VERR_GVMM_BROKEN_IPRT);
 
@@ -888,4 +891,6 @@
                                         pVM->aCpus[0].hNativeThreadR0 = hEMT0;
                                         pGVMM->cEMTs += cCpus;
+
+                                        VBOXVMM_R0_GVMM_VM_CREATED(pGVM, pVM, ProcId, (void *)hEMT0, cCpus);
 
                                         gvmmR0UsedUnlock(pGVMM);
Index: trunk/src/VBox/VMM/VMMR3/VBoxVMM.d
===================================================================
--- trunk/src/VBox/VMM/VMMR3/VBoxVMM.d	(revision 40561)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/* $Id$ */
-/** @file
- * VBoxVMM - Static ring-3 dtrace probes.
- */
-
-/*
- * Copyright (C) 2009-2012 Oracle Corporation
- *
- * This file is part of VirtualBox Open Source Edition (OSE), as
- * available from http://www.virtualbox.org. This file is free software;
- * you can redistribute it and/or modify it under the terms of the GNU
- * General Public License (GPL) as published by the Free Software
- * Foundation, in version 2 as it comes in the "COPYING" file of the
- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
- */
-
-provider vboxvmm
-{
-    probe em__state__changed(void *a_pVCpu, int a_enmOldState, int a_enmNewState, int a_rc);
-    probe em__state__unchanged(void *a_pVCpu, int a_enmState, int a_rc);
-    probe em__raw__run__pre(void *a_pVCpu, void *a_pCtx);
-    probe em__raw__run__ret(void *a_pVCpu, void *a_pCtx, int a_rc);
-    probe em__ff__high(void *a_pVCpu, unsigned int a_fGlobal, unsigned int a_fLocal, int a_rc);
-    probe em__ff__all(void *a_pVCpu, unsigned int a_fGlobal, unsigned int a_fLocal, int a_rc);
-    probe em__ff__all_ret(void *a_pVCpu, int a_rc);
-    probe em__ff__raw(void *a_pVCpu, unsigned int a_fGlobal, unsigned int a_fLocal);
-    probe em__ff__raw_ret(void *a_pVCpu, int a_rc);
-};
-
-#pragma D attributes Evolving/Evolving/Common provider vboxvmm provider
-#pragma D attributes Private/Private/Unknown  provider vboxvmm module
-#pragma D attributes Private/Private/Unknown  provider vboxvmm function
-#pragma D attributes Evolving/Evolving/Common provider vboxvmm name
-#pragma D attributes Evolving/Evolving/Common provider vboxvmm args
-
