On a Friday in 2025, Daniel P. Berrangé wrote:
When thread naming was introduced years ago, it was disabled by
default and put behind a command line flag:

 commit 8f480de0c91a18d550721f8d9af969ebfbda0793
 Author: Dr. David Alan Gilbert <dgilb...@redhat.com>
 Date:   Thu Jan 30 10:20:31 2014 +0000

   Add 'debug-threads' suboption to --name

This was done based on a concern that something might depend
on the historical thread naming. Thread names, however, were
never promised to be part of QEMU's public API. The defaults
will vary across platforms, so no assumptions should ever be
made about naming.

An opt-in behaviour is also unfortunately incompatible with
RCU which creates its thread from an constructor function
which is run before command line args are parsed. Thus the
RCU thread lacks any name.

libvirt has unconditionally enabled debug-threads=yes on all
VMs it creates for 10 years. Interestingly this DID expose a
bug in libvirt, as it parsed /proc/$PID/stat and could not
cope with a space in the thread name. This was a latent
pre-existing bug in libvirt though, and not a part of QEMU's
API.

Having thread names always available, will allow thread names
to be included in error reports and log messags QEMU prints
by default, which will improve ability to triage QEMU bugs.

Reviewed-by: Dr. David Alan Gilbert <d...@treblig.org>
Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
---
docs/about/deprecated.rst |  7 +++++++
include/qemu/thread.h     |  1 -
system/vl.c               | 11 ++++++-----
util/qemu-thread-posix.c  | 18 +-----------------
util/qemu-thread-win32.c  | 27 ++++++---------------------
5 files changed, 20 insertions(+), 44 deletions(-)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index d50645a071..bd6f865558 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -81,6 +81,13 @@ kernel since 2001. None of the board types QEMU supports need
``param_struct`` support, so this option has been deprecated and will
be removed in a future QEMU version.

+``debug-threads`` option for ``-name``

(since 10.2)

Jano

+''''''''''''''''''''''''''''''''''''''
+
+Thread ``debug-threads`` option for the ``-name`` argument is now
+ignored. Thread naming is unconditionally enabled for all platforms
+where it is supported.
+
User-mode emulator command line arguments
-----------------------------------------

Attachment: signature.asc
Description: PGP signature

Reply via email to