summary refs log tree commit diff stats
path: root/include/qemu/main-loop.h
diff options
context:
space:
mode:
authorEmilio G. Cota <cota@braap.org>2017-10-28 02:16:41 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2018-08-23 18:46:25 +0200
commitcb764d06650da5fad7c833975b255d08e91a0a52 (patch)
tree7f403b625d17ba77ad11639d976b2c847f0c830c /include/qemu/main-loop.h
parentd557de4a0e290c9946f37ff1fba7204844cccc64 (diff)
downloadfocaccia-qemu-cb764d06650da5fad7c833975b255d08e91a0a52.tar.gz
focaccia-qemu-cb764d06650da5fad7c833975b255d08e91a0a52.zip
qsp: track BQL callers explicitly
The BQL is acquired via qemu_mutex_lock_iothread(), which makes
the profiler assign the associated wait time (i.e. most of
BQL wait time) entirely to that function. This loses the original
call site information, which does not help diagnose BQL contention.
Fix it by tracking the callers explicitly.

Signed-off-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/qemu/main-loop.h')
-rw-r--r--include/qemu/main-loop.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
index 721aa2416a..e59f9ae1e9 100644
--- a/include/qemu/main-loop.h
+++ b/include/qemu/main-loop.h
@@ -276,7 +276,9 @@ bool qemu_mutex_iothread_locked(void);
  * NOTE: tools currently are single-threaded and qemu_mutex_lock_iothread
  * is a no-op there.
  */
-void qemu_mutex_lock_iothread(void);
+#define qemu_mutex_lock_iothread()                      \
+    qemu_mutex_lock_iothread_impl(__FILE__, __LINE__)
+void qemu_mutex_lock_iothread_impl(const char *file, int line);
 
 /**
  * qemu_mutex_unlock_iothread: Unlock the main loop mutex.