On a Wednesday 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>
Reviewed-by: Richard Henderson <richard.hender...@linaro.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 b2420732e1..7187ea15fa 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

(this time on the latest version of the series, hopefully)

+''''''''''''''''''''''''''''''''''''''
+
+Thread ``debug-threads`` option for the ``-name`` argument is now
+ignored. Thread naming is unconditionally enabled for all platforms
+where it is supported.
+
QEMU Machine Protocol (QMP) commands
------------------------------------

Attachment: signature.asc
Description: PGP signature

Reply via email to