Skip to contentSkip to conversation

tracetool: Include thread id information in log backend

PATCH Applied Fabiano Rosas 2 participants 2 messages Oct 4, 2018 – Nov 5, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tracetool: Include thread id information in log backend

Currently the log backend prints the process id of QEMU at the start of each output line, but since threads share the same PID there is no clear distinction between their outputs.

Having the thread id present in the log makes it easier to see when output comes from different threads. E.g.:

[email protected]:qemu_mutex_lock waiting on mutex 0x1103ee60 (/root/qemu/util/main-loop.c:236)
...
[email protected]:qemu_mutex_unlock released mutex 0x1103ee60 (/root/qemu/cpus.c:1238) [email protected]:qemu_mutex_locked taken mutex 0x1103ee60 (/root/qemu/cpus.c:1257) ^here

In the above, 12423 is the main process id and 12430 & 12431 are the two vcpu threads.

(qemu) info cpus
* CPU #0: thread_id=12430
CPU #1: thread_id=12431

---
 scripts/tracetool/backend/log.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/tracetool/backend/log.py +1 -1
index 6751f41bc5..33c95af8e9 100644
@@ -39,7 +39,7 @@ def generate_h(event, group):
         '        struct timeval _now;',
         '        gettimeofday(&_now, NULL);',
         '        qemu_log("%%d@%%zu.%%06zu:%(name)s " %(fmt)s "\\n",',
-        '                 getpid(),',
+        '                 qemu_get_thread_id(),',
         '                 (size_t)_now.tv_sec, (size_t)_now.tv_usec',
         '                 %(argnames)s);',
         '    }',
Signature · 1 line
2.17.1
#1 lore raw
Quoted 20 lines · Fabiano Rosas

Currently the log backend prints the process id of QEMU at the start of each output line, but since threads share the same PID there is no clear distinction between their outputs.

Having the thread id present in the log makes it easier to see when output comes from different threads. E.g.:

[email protected]:qemu_mutex_lock waiting on mutex 0x1103ee60 (/root/qemu/util/main-loop.c:236)
...
[email protected]:qemu_mutex_unlock released mutex 0x1103ee60 (/root/qemu/cpus.c:1238) [email protected]:qemu_mutex_locked taken mutex 0x1103ee60 (/root/qemu/cpus.c:1257) ^here

In the above, 12423 is the main process id and 12430 & 12431 are the two vcpu threads.

(qemu) info cpus
* CPU #0: thread_id=12430
CPU #1: thread_id=12431

Quoted 5 lines
---
 scripts/tracetool/backend/log.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Thanks, applied to my tracing-next tree:
https://github.com/stefanha/qemu/commits/tracing-next

Stefan