All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Ian Rogers <irogers@google.com>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v2 1/2] perf test workload noploop: Name the noploop process
Date: Mon, 23 Jun 2025 16:18:57 -0300	[thread overview]
Message-ID: <aFmooVYz-6p1DTSv@x1> (raw)
In-Reply-To: <aFmZl-SUT85Im8BJ@google.com>

On Mon, Jun 23, 2025 at 11:14:47AM -0700, Namhyung Kim wrote:
> On Mon, Jun 23, 2025 at 11:05:41AM -0700, Ian Rogers wrote:
> > On Mon, Jun 23, 2025 at 10:45 AM Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > > On Mon, Jun 23, 2025 at 08:12:47AM -0700, Ian Rogers wrote:
> > > > On Fri, Jun 20, 2025 at 12:36 PM Namhyung Kim <namhyung@kernel.org> wrote:
> > > > > I'm afraid it'd introduce a build failure on musl.  Please see

> > > > > https://lore.kernel.org/linux-perf-users/20250611092542.F4ooE2FL@linutronix.de/

> > > > > I think <sys/prctl.h> would be enough.

> > > > we could do that but in the glibc man page it says:
> > > > https://man7.org/linux/man-pages/man2/prctl.2.html
> > > > ```
> > > > #include <linux/prctl.h>  /* Definition of PR_* constants */
> > > > #include <sys/prctl.h>
> > > > ```

> > > > It'd be nice to think musl was slowly getting fixed. I notice we're

> > > Sebastian reported on the musl libc, its maintainer replied:

> > > https://www.openwall.com/lists/musl/2025/06/12/11

> > Ugh. I'm not sure how we're expected to resolve this and have glibc
> > and musl be happy without basically not trusting libc.

> Maybe pthread_setname_np()?  It seems musl also implemented it.

⬢ [acme@toolbx perf-tools-next]$ git diff
diff --git a/tools/perf/tests/workloads/noploop.c b/tools/perf/tests/workloads/noploop.c
index 8b954d4660833a2f..656e472e618822a3 100644
--- a/tools/perf/tests/workloads/noploop.c
+++ b/tools/perf/tests/workloads/noploop.c
@@ -1,9 +1,8 @@
 /* SPDX-License-Identifier: GPL-2.0 */
+#include <pthread.h>
 #include <stdlib.h>
 #include <signal.h>
 #include <unistd.h>
-#include <linux/prctl.h>
-#include <sys/prctl.h>
 #include <linux/compiler.h>
 #include "../tests.h"
 
@@ -18,7 +17,7 @@ static int noploop(int argc, const char **argv)
 {
        int sec = 1;
 
-       prctl(PR_SET_NAME, "perf-noploop");
+       pthread_setname_np(pthread_self(), "perf-noploop");
        if (argc > 0)
                sec = atoi(argv[0]);
 
⬢ [acme@toolbx perf-tools-next]$ 

⬢ [acme@toolbx perf-tools-next]$ perf test -w noploop &
[1] 1179763
⬢ [acme@toolbx perf-tools-next]$ ps
    PID TTY          TIME CMD
   3935 pts/1    00:00:00 bash
   4053 pts/1    00:00:00 toolbox
   4222 pts/1    00:00:28 podman
 971900 pts/1    00:00:00 bash
1100453 pts/1    00:00:00 tail
1160346 pts/1    00:00:00 bash
1179763 pts/1    00:00:00 perf-noploop
1179765 pts/1    00:00:00 ps
⬢ [acme@toolbx perf-tools-next]$

And then on one of the Alpine Linux containers:

make: Leaving directory '/tmp/perf-6.16.0-rc3/tools/perf'
/tmp/perf-6.16.0-rc3 $ cat /etc/os-release 
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.18.12
PRETTY_NAME="Alpine Linux v3.18"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
/tmp/perf-6.16.0-rc3 $ tools/perf/perf test -w noploop &
/tmp/perf-6.16.0-rc3 $ ps
PID   USER     TIME  COMMAND
    1 toolsbui  0:00 /bin/sh
 5693 toolsbui  0:00 {perf-noploop} tools/perf/perf test -w noploop
 5694 toolsbui  0:00 ps
/tmp/perf-6.16.0-rc3 $ 
[1]+  Done                       tools/perf/perf test -w noploop
/tmp/perf-6.16.0-rc3

There are more direct use of prctl() to set the name in tools/perf/,
using pthread_setname_np() seems cleaner :-)

- Arnaldo

  reply	other threads:[~2025-06-23 19:19 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-19  0:20 [PATCH v2 1/2] perf test workload noploop: Name the noploop process Ian Rogers
2025-06-19  0:20 ` [PATCH v2 2/2] perf test: Add sched latency and script shell tests Ian Rogers
2025-06-20 10:01   ` James Clark
2025-06-20 19:41   ` Namhyung Kim
2025-06-28  1:25     ` Ian Rogers
2025-06-20 10:01 ` [PATCH v2 1/2] perf test workload noploop: Name the noploop process James Clark
2025-06-20 19:36 ` Namhyung Kim
2025-06-23 15:12   ` Ian Rogers
2025-06-23 17:45     ` Arnaldo Carvalho de Melo
2025-06-23 18:05       ` Ian Rogers
2025-06-23 18:14         ` Namhyung Kim
2025-06-23 19:18           ` Arnaldo Carvalho de Melo [this message]
2025-06-23 19:41             ` Ian Rogers
2025-06-23 23:14               ` Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aFmooVYz-6p1DTSv@x1 \
    --to=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=bigeasy@linutronix.de \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.