[PATCH] erofs-utils: lib: name worker threads erofs_compress
Nithurshen
nithurshen.dev at gmail.com
Tue Mar 17 02:13:52 AEDT 2026
Set a specific thread name for the multi-threaded workqueue workers
to make debugging, profiling, and process monitoring significantly
easier.
Previously, worker threads inherited the name of the parent process
(e.g., mkfs.erofs), making it difficult to distinguish them from the
main thread in tools like \`top\`, \`htop\`, or \`ps\`.
This utilizes \`prctl(PR_SET_NAME)\` on Linux and \`pthread_setname_np\`
on macOS to explicitly label these threads as \"erofs_compress\" upon
initialization.
Signed-off-by: Nithurshen <nithurshen.dev at gmail.com>
---
lib/workqueue.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/lib/workqueue.c b/lib/workqueue.c
index 18ee0f9..860e403 100644
--- a/lib/workqueue.c
+++ b/lib/workqueue.c
@@ -2,6 +2,9 @@
#include <pthread.h>
#include <stdlib.h>
#include "erofs/workqueue.h"
+#if defined(__linux__)
+#include <sys/prctl.h>
+#endif
static void *worker_thread(void *arg)
{
@@ -9,6 +12,12 @@ static void *worker_thread(void *arg)
struct erofs_work *work;
void *tlsp = NULL;
+#if defined(__linux__)
+ prctl(PR_SET_NAME, "erofs_compress");
+#elif defined(__APPLE__)
+ pthread_setname_np("erofs_compress");
+#endif
+
if (wq->on_start)
tlsp = (wq->on_start)(wq, NULL);
--
2.51.0
More information about the Linux-erofs
mailing list