Index: /trunk/include/VBox/vmm/dbgf.h
===================================================================
--- /trunk/include/VBox/vmm/dbgf.h	(revision 61633)
+++ /trunk/include/VBox/vmm/dbgf.h	(revision 61634)
@@ -967,10 +967,35 @@
  * Display a piece of info writing to the log if enabled.
  *
+ * This is for execution on EMTs and will only show the items on the calling
+ * EMT.  This is to avoid deadlocking against other CPUs if a rendezvous is
+ * initiated in parallel to this call.  (Besides, nobody really wants or need
+ * info for the other EMTs when using this macro.)
+ *
+ * @param   a_pVM       The shared VM handle.
+ * @param   a_pVCpu     The cross context per CPU structure of the calling EMT.
+ * @param   a_pszName   The identifier of the info to display.
+ * @param   a_pszArgs   Arguments to the info handler.
+ */
+#ifdef LOG_ENABLED
+# define DBGFR3_INFO_LOG(a_pVM, a_pVCpu, a_pszName, a_pszArgs) \
+    do { \
+        if (LogIsEnabled()) \
+            DBGFR3InfoEx((a_pVM)->pUVM, (a_pVCpu)->idCpu, a_pszName, a_pszArgs, NULL); \
+    } while (0)
+#else
+# define DBGFR3_INFO_LOG(a_pVM, a_pVCpu, a_pszName, a_pszArgs) do { } while (0)
+#endif
+
+/** @def DBGFR3_INFO_LOG_SAFE
+ * Display a piece of info (rendezvous safe) writing to the log if enabled.
+ *
  * @param   a_pVM       The shared VM handle.
  * @param   a_pszName   The identifier of the info to display.
  * @param   a_pszArgs   Arguments to the info handler.
+ *
+ * @remarks Use DBGFR3_INFO_LOG where ever possible!
  */
 #ifdef LOG_ENABLED
-# define DBGFR3_INFO_LOG(a_pVM, a_pszName, a_pszArgs) \
+# define DBGFR3_INFO_LOG_SAFE(a_pVM, a_pszName, a_pszArgs) \
     do { \
         if (LogIsEnabled()) \
@@ -978,5 +1003,5 @@
     } while (0)
 #else
-# define DBGFR3_INFO_LOG(a_pVM, a_pszName, a_pszArgs) do { } while (0)
+# define DBGFR3_INFO_LOG_SAFE(a_pVM, a_pszName, a_pszArgs) do { } while (0)
 #endif
 
Index: /trunk/src/VBox/VMM/VMMR3/CPUM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/CPUM.cpp	(revision 61633)
+++ /trunk/src/VBox/VMM/VMMR3/CPUM.cpp	(revision 61634)
@@ -2565,5 +2565,5 @@
     DBGFR3Info(pVM->pUVM, "cpuid", "verbose", DBGFR3InfoLogRelHlp());
     LogRel(("\n"));
-    DBGFR3_INFO_LOG(pVM, "cpuid", "verbose"); /* macro */
+    DBGFR3_INFO_LOG_SAFE(pVM, "cpuid", "verbose"); /* macro */
     RTLogRelSetBuffering(fOldBuffered);
     LogRel(("******************** End of CPUID dump **********************\n"));
Index: /trunk/src/VBox/VMM/VMMR3/EMHM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/EMHM.cpp	(revision 61633)
+++ /trunk/src/VBox/VMM/VMMR3/EMHM.cpp	(revision 61634)
@@ -185,5 +185,5 @@
     if (pszPrefix)
     {
-        DBGFR3_INFO_LOG(pVM, "cpumguest", pszPrefix);
+        DBGFR3_INFO_LOG(pVM, pVCpu, "cpumguest", pszPrefix);
         DBGFR3_DISAS_INSTR_CUR_LOG(pVCpu, pszPrefix);
     }
Index: /trunk/src/VBox/VMM/VMMR3/EMRaw.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/EMRaw.cpp	(revision 61633)
+++ /trunk/src/VBox/VMM/VMMR3/EMRaw.cpp	(revision 61634)
@@ -281,5 +281,5 @@
     if (pszPrefix)
     {
-        DBGFR3_INFO_LOG(pVM, "cpumguest", pszPrefix);
+        DBGFR3_INFO_LOG(pVM, pVCpu, "cpumguest", pszPrefix);
         DBGFR3_DISAS_INSTR_CUR_LOG(pVCpu, pszPrefix);
     }
@@ -580,5 +580,5 @@
 
 #ifdef LOG_ENABLED
-    DBGFR3_INFO_LOG(pVM, "cpumguest", "Guest trap");
+    DBGFR3_INFO_LOG(pVM, pVCpu, "cpumguest", "Guest trap");
     DBGFR3_DISAS_INSTR_CUR_LOG(pVCpu, "Guest trap");
 
@@ -716,5 +716,5 @@
     {
 #ifdef LOG_ENABLED
-        DBGFR3_INFO_LOG(pVM, "cpumguest", "Trap in patch code");
+        DBGFR3_INFO_LOG(pVM, pVCpu, "cpumguest", "Trap in patch code");
         DBGFR3_DISAS_INSTR_CUR_LOG(pVCpu, "Patch code");
 
@@ -870,5 +870,5 @@
         {
 #ifdef LOG_ENABLED
-            DBGFR3_INFO_LOG(pVM, "cpumguest", "PRIV");
+            DBGFR3_INFO_LOG(pVM, pVCpu, "cpumguest", "PRIV");
 #endif
             AssertMsgFailed(("FATAL ERROR: executing random instruction inside generated patch jump %08x\n", pCtx->eip));
@@ -884,5 +884,5 @@
             {
 #ifdef LOG_ENABLED
-                DBGFR3_INFO_LOG(pVM, "cpumguest", "PRIV");
+                DBGFR3_INFO_LOG(pVM, pVCpu, "cpumguest", "PRIV");
 #endif
                 DBGFR3_DISAS_INSTR_CUR_LOG(pVCpu, "Patched privileged instruction");
@@ -895,5 +895,5 @@
     if (!PATMIsPatchGCAddr(pVM, pCtx->eip))
     {
-        DBGFR3_INFO_LOG(pVM, "cpumguest", "PRIV");
+        DBGFR3_INFO_LOG(pVM, pVCpu, "cpumguest", "PRIV");
         DBGFR3_DISAS_INSTR_CUR_LOG(pVCpu, "Privileged instr");
     }
@@ -1035,5 +1035,5 @@
                     if (PATMIsPatchGCAddr(pVM, pCtx->eip))
                     {
-                        DBGFR3_INFO_LOG(pVM, "cpumguest", "PRIV");
+                        DBGFR3_INFO_LOG(pVM, pVCpu, "cpumguest", "PRIV");
                         DBGFR3_DISAS_INSTR_CUR_LOG(pVCpu, "Privileged instr");
                     }
Index: /trunk/src/VBox/VMM/VMMR3/PGM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/PGM.cpp	(revision 61633)
+++ /trunk/src/VBox/VMM/VMMR3/PGM.cpp	(revision 61634)
@@ -2603,6 +2603,6 @@
 
 #ifdef DEBUG
-    DBGFR3_INFO_LOG(pVM, "mappings", NULL);
-    DBGFR3_INFO_LOG(pVM, "handlers", "all nostat");
+    DBGFR3_INFO_LOG_SAFE(pVM, "mappings", NULL);
+    DBGFR3_INFO_LOG_SAFE(pVM, "handlers", "all nostat");
 #endif
 
Index: /trunk/src/VBox/VMM/VMMR3/TRPM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/TRPM.cpp	(revision 61633)
+++ /trunk/src/VBox/VMM/VMMR3/TRPM.cpp	(revision 61634)
@@ -1505,5 +1505,5 @@
 
 # ifdef LOG_ENABLED
-        DBGFR3_INFO_LOG(pVM, "cpumguest", "TRPMInject");
+        DBGFR3_INFO_LOG(pVM, pVCpu, "cpumguest", "TRPMInject");
         DBGFR3_DISAS_INSTR_CUR_LOG(pVCpu, "TRPMInject");
 # endif
Index: /trunk/src/recompiler/VBoxRecompiler.c
===================================================================
--- /trunk/src/recompiler/VBoxRecompiler.c	(revision 61633)
+++ /trunk/src/recompiler/VBoxRecompiler.c	(revision 61634)
@@ -4081,5 +4081,5 @@
      */
     if (fLog2)
-        DBGFR3_INFO_LOG(pVM, "cpumguest", pszPrefix);
+        DBGFR3_INFO_LOG(pVM, env->pVCpu, "cpumguest", pszPrefix);
 
     /*
