From: sashiko-bot@kernel.org
To: "Ian Rogers" <irogers@google.com>
Cc: linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v7] perf tpebs: Fix concurrent stop races and PID reuse hazards in tpebs_stop
Date: Tue, 02 Jun 2026 07:46:55 +0000 [thread overview]
Message-ID: <20260602074656.499C01F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260602073132.2653307-2-irogers@google.com>
Thank you for your contribution! Sashiko AI review found 5 potential issue(s) to consider:
New issues:
- [High] Spurious `-EBUSY` failures and skipped event initialization due to a lockless `tpebs_cmd.pid` check racing with temporary PID restoration.
Pre-existing issues:
- [Critical] Unsynchronized check of `tpebs_cmd.pid` allows concurrent threads to hit `assert(tpebs_cmd.pid == 0)` and crash the process.
- [High] Unprotected `pthread_join` window allows concurrent session start, leading to orphaned processes and state corruption.
- [High] Statically allocated `tpebs_cmd` struct is not re-initialized between executions, silently skipping `waitpid()` and leaking zombie processes.
- [High] Error paths in `evsel__tpebs_open()` fail to clean up file descriptors, child processes, and global state, permanently breaking TPEBS functionality.
--
commit 6304c5f7736398fadcc6a882cdc4bef08d2b9994
Author: Ian Rogers <irogers@google.com>
perf tpebs: Fix concurrent stop races and PID reuse hazards in tpebs_stop
This commit introduces a tpebs_stopping flag to prevent redundant stop
execution paths. It also temporarily restores cmd.pid during
finish_command() to ensure the process is reaped correctly.
> diff --git a/tools/perf/util/intel-tpebs.c b/tools/perf/util/intel-tpebs.c
> index 8b615dc94e9ea..6d642356fd9dc 100644
> --- a/tools/perf/util/intel-tpebs.c
> +++ b/tools/perf/util/intel-tpebs.c
> @@ -37,6 +37,7 @@ static pthread_t tpebs_reader_thread;
> static struct child_process tpebs_cmd;
> static int control_fd[2], ack_fd[2];
> static struct mutex tpebs_mtx;
> +static bool tpebs_stopping;
[Severity: High]
This is a pre-existing issue, but since tpebs_cmd is a static global, does
it need to be re-initialized between executions?
When a session finishes, finish_command() internally sets
tpebs_cmd.finished = 1. When a subsequent session begins,
evsel__tpebs_start_perf_record() calls start_command(&tpebs_cmd), which
does not clear the finished flag from previous executions.
When the second session stops, finish_command() will see finished == 1
and skip waitpid() entirely, leaving subsequent perf record processes as
zombies.
[Severity: Critical]
This isn't a bug introduced by this patch, but the unsynchronized check of
tpebs_cmd.pid in evsel__tpebs_open() allows concurrent threads to bypass
validation:
int evsel__tpebs_open(...) {
if (tpebs_cmd.pid != 0) {
If two threads call this concurrently while no session is running, both
bypass the check. They serialize on tpebs_mtx in evsel__tpebs_prepare(),
and both will observe !list_empty(&tpebs_results).
Thread 1 successfully spawns the process and sets tpebs_cmd.pid. Once
Thread 1 releases the lock, Thread 2 acquires it and calls
evsel__tpebs_start_perf_record(), where it hits:
assert(tpebs_cmd.pid == 0);
Can this cause the entire process to crash when the assertion fails?
[Severity: High]
This is a pre-existing issue, but the error path in evsel__tpebs_open()
fails to fully clean up state when pthread_create() fails:
if (pthread_create(&tpebs_reader_thread, NULL,
__sample_reader, NULL)) {
kill(tpebs_cmd.pid, SIGTERM);
close(tpebs_cmd.out);
pr_err("Could not create thread to process sample data.\n");
ret = -1;
goto out;
}
This path does not close the control_fd and ack_fd pipes, and it does not
reap the killed child with finish_command(). It also leaves tpebs_cmd.pid
persistently non-zero.
Would this permanently break TPEBS functionality for the process lifetime
by causing future calls to locklessly observe a non-zero PID and return
-EBUSY?
[ ... ]
> @@ -321,8 +322,14 @@ static int tpebs_stop(void) EXCLUSIVE_LOCKS_REQUIRED(tpebs_mtx_get())
> {
> int ret = 0;
>
> + if (tpebs_stopping)
> + return 0;
> +
> /* Like tpebs_start, we should only run tpebs_end once. */
> if (tpebs_cmd.pid != 0) {
> + pid_t actual_pid = tpebs_cmd.pid;
> +
> + tpebs_stopping = true;
> tpebs_send_record_cmd(EVLIST_CTL_CMD_STOP_TAG);
> tpebs_cmd.pid = 0;
> mutex_unlock(tpebs_mtx_get());
> pthread_join(tpebs_reader_thread, NULL);
[Severity: High]
This is a pre-existing issue, but dropping the mutex while tpebs_cmd.pid is
zero allows a concurrent call to evsel__tpebs_open() to spawn a brand new
TPEBS session during the pthread_join() window.
When this thread reacquires the lock, it will blindly close the file
descriptors of the new session and clobber the new session's PID by restoring
the old actual_pid. Does this leave the newly spawned process permanently
untracked and its reader thread leaked?
> mutex_lock(tpebs_mtx_get());
> close(control_fd[0]);
> close(control_fd[1]);
> close(ack_fd[0]);
> close(ack_fd[1]);
> close(tpebs_cmd.out);
> + tpebs_cmd.pid = actual_pid;
> ret = finish_command(&tpebs_cmd);
> tpebs_cmd.pid = 0;
[Severity: High]
Does temporarily restoring tpebs_cmd.pid to a non-zero value here create a
race condition with evsel__tpebs_open()?
Since evsel__tpebs_open() performs a lockless check of tpebs_cmd.pid:
int evsel__tpebs_open(...) {
if (tpebs_cmd.pid != 0) {
struct tpebs_retire_lat *t;
A concurrent thread could observe the restored non-zero PID, assume a session
is actively running, and incorrectly return -EBUSY because it skipped the
initialization sequence.
> + tpebs_stopping = false;
> if (ret == -ERR_RUN_COMMAND_WAITPID_SIGNAL)
> ret = 0;
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260602073132.2653307-2-irogers@google.com?part=1
next prev parent reply other threads:[~2026-06-02 7:46 UTC|newest]
Thread overview: 178+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-13 23:04 [PATCH v1 00/14] perf test: Harness improvements Ian Rogers
2026-05-13 23:04 ` [PATCH v1 01/14] perf jevents.py: Make generated C code more kernel style Ian Rogers
2026-05-13 23:04 ` [PATCH v1 02/14] perf pmu-events: Add API to get metric table name and iterate tables Ian Rogers
2026-05-14 11:42 ` sashiko-bot
2026-05-13 23:04 ` [PATCH v1 03/14] perf test: Drain pipe after child finishes to avoid losing output Ian Rogers
2026-05-13 23:04 ` [PATCH v1 04/14] perf test: Support dynamic test suites with setup callback and private data Ian Rogers
2026-05-14 12:10 ` sashiko-bot
2026-05-13 23:04 ` [PATCH v1 05/14] perf test pmu-events: A sub-test per metric table Ian Rogers
2026-05-13 23:04 ` [PATCH v1 06/14] perf test: Refactor parallel poll loop to drain all pipes simultaneously Ian Rogers
2026-05-14 14:27 ` sashiko-bot
2026-05-13 23:04 ` [PATCH v1 07/14] perf test: Show snippet failure output for verbose=1 Ian Rogers
2026-05-14 15:50 ` sashiko-bot
2026-05-13 23:04 ` [PATCH v1 08/14] perf test: Add summary reporting Ian Rogers
2026-05-14 16:10 ` sashiko-bot
2026-05-13 23:04 ` [PATCH v1 09/14] perf test: Fix subtest status alignment for multi-digit indexes Ian Rogers
2026-05-13 23:04 ` [PATCH v1 10/14] perf test: Skip shebang and SPDX comments in shell test descriptions Ian Rogers
2026-05-13 23:04 ` [PATCH v1 11/14] perf test: Split monolithic 'util' test suite into sub-tests Ian Rogers
2026-05-13 23:04 ` [PATCH v1 12/14] perf test: Add -j/--junit option for JUnit XML test reports Ian Rogers
2026-05-14 17:48 ` sashiko-bot
2026-05-13 23:04 ` [PATCH v1 13/14] perf test: Add shell test to validate JUnit XML reporting output Ian Rogers
2026-05-13 23:04 ` [PATCH v1 14/14] perf test: Remove /usr/bin/cc dependency from Intel PT shell test Ian Rogers
2026-05-14 18:28 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 00/14] perf test: Accelerate parallel test harness and add JUnit XML reporting Ian Rogers
2026-05-31 5:27 ` [PATCH v2 01/14] perf jevents.py: Make generated C code more kernel style Ian Rogers
2026-05-31 5:36 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 02/14] perf pmu-events: Add API to get metric table name and iterate tables Ian Rogers
2026-05-31 5:36 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 03/14] perf test: Drain pipe after child finishes to avoid losing output Ian Rogers
2026-05-31 5:37 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 04/14] perf test: Support dynamic test suites with setup callback and private data Ian Rogers
2026-05-31 5:27 ` [PATCH v2 05/14] perf test pmu-events: A sub-test per metric table Ian Rogers
2026-05-31 5:27 ` [PATCH v2 06/14] perf test: Refactor parallel poll loop to drain all pipes simultaneously Ian Rogers
2026-05-31 5:39 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 07/14] perf test: Show snippet failure output for verbose=1 Ian Rogers
2026-05-31 5:37 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 08/14] perf test: Add summary reporting Ian Rogers
2026-05-31 5:38 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 09/14] perf test: Fix subtest status alignment for multi-digit indexes Ian Rogers
2026-05-31 5:27 ` [PATCH v2 10/14] perf test: Skip shebang and SPDX comments in shell test descriptions Ian Rogers
2026-05-31 5:46 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 11/14] perf test: Split monolithic 'util' test suite into sub-tests Ian Rogers
2026-05-31 5:48 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 12/14] perf test: Add -j/--junit option for JUnit XML test reports Ian Rogers
2026-05-31 5:43 ` sashiko-bot
2026-05-31 5:27 ` [PATCH v2 13/14] perf test: Add shell test to validate JUnit XML reporting output Ian Rogers
2026-05-31 5:27 ` [PATCH v2 14/14] perf test: Remove /usr/bin/cc dependency from Intel PT shell test Ian Rogers
2026-05-31 5:47 ` sashiko-bot
2026-05-31 6:37 ` [PATCH v3 00/14] perf test: Accelerate parallel test harness and add JUnit XML reporting Ian Rogers
2026-05-31 6:37 ` [PATCH v3 01/14] perf jevents.py: Make generated C code more kernel style Ian Rogers
2026-05-31 6:46 ` sashiko-bot
2026-05-31 6:37 ` [PATCH v3 02/14] perf pmu-events: Add API to get metric table name and iterate tables Ian Rogers
2026-05-31 6:37 ` [PATCH v3 03/14] perf test: Drain pipe after child finishes to avoid losing output Ian Rogers
2026-05-31 6:37 ` [PATCH v3 04/14] perf test: Support dynamic test suites with setup callback and private data Ian Rogers
2026-05-31 6:37 ` [PATCH v3 05/14] perf test pmu-events: A sub-test per metric table Ian Rogers
2026-05-31 6:37 ` [PATCH v3 06/14] perf test: Refactor parallel poll loop to drain all pipes simultaneously Ian Rogers
2026-05-31 6:55 ` sashiko-bot
2026-05-31 6:37 ` [PATCH v3 07/14] perf test: Show snippet failure output for verbose=1 Ian Rogers
2026-05-31 6:47 ` sashiko-bot
2026-05-31 6:37 ` [PATCH v3 08/14] perf test: Add summary reporting Ian Rogers
2026-05-31 6:50 ` sashiko-bot
2026-05-31 6:37 ` [PATCH v3 09/14] perf test: Fix subtest status alignment for multi-digit indexes Ian Rogers
2026-05-31 6:37 ` [PATCH v3 10/14] perf test: Skip shebang and SPDX comments in shell test descriptions Ian Rogers
2026-05-31 6:52 ` sashiko-bot
2026-05-31 6:37 ` [PATCH v3 11/14] perf test: Split monolithic 'util' test suite into sub-tests Ian Rogers
2026-05-31 6:37 ` [PATCH v3 12/14] perf test: Add -j/--junit option for JUnit XML test reports Ian Rogers
2026-05-31 6:37 ` [PATCH v3 13/14] perf test: Add shell test to validate JUnit XML reporting output Ian Rogers
2026-05-31 6:37 ` [PATCH v3 14/14] perf test: Remove /usr/bin/cc dependency from Intel PT shell test Ian Rogers
2026-05-31 6:58 ` sashiko-bot
2026-05-31 8:22 ` [PATCH v4 00/15] perf test: Accelerate parallel test harness and add JUnit XML reporting Ian Rogers
2026-05-31 8:22 ` [PATCH v4 01/15] perf jevents.py: Make generated C code more kernel style Ian Rogers
2026-05-31 8:22 ` [PATCH v4 02/15] perf pmu-events: Add API to get metric table name and iterate tables Ian Rogers
2026-05-31 8:22 ` [PATCH v4 03/15] perf test: Drain pipe after child finishes to avoid losing output Ian Rogers
2026-05-31 8:22 ` [PATCH v4 04/15] perf test: Support dynamic test suites with setup callback and private data Ian Rogers
2026-05-31 8:22 ` [PATCH v4 05/15] perf test pmu-events: A sub-test per metric table Ian Rogers
2026-05-31 8:22 ` [PATCH v4 06/15] tools subcmd: Robust fallback and existence checks for process reaping Ian Rogers
2026-05-31 8:33 ` sashiko-bot
2026-05-31 8:22 ` [PATCH v4 07/15] perf test: Refactor parallel poll loop to drain all pipes simultaneously Ian Rogers
2026-05-31 8:34 ` sashiko-bot
2026-05-31 8:22 ` [PATCH v4 08/15] perf test: Show snippet failure output for verbose=1 Ian Rogers
2026-05-31 8:31 ` sashiko-bot
2026-05-31 8:22 ` [PATCH v4 09/15] perf test: Add summary reporting Ian Rogers
2026-05-31 8:33 ` sashiko-bot
2026-05-31 8:22 ` [PATCH v4 10/15] perf test: Fix subtest status alignment for multi-digit indexes Ian Rogers
2026-05-31 8:33 ` sashiko-bot
2026-05-31 8:22 ` [PATCH v4 11/15] perf test: Skip shebang and SPDX comments in shell test descriptions Ian Rogers
2026-05-31 8:22 ` [PATCH v4 12/15] perf test: Split monolithic 'util' test suite into sub-tests Ian Rogers
2026-05-31 8:22 ` [PATCH v4 13/15] perf test: Add -j/--junit option for JUnit XML test reports Ian Rogers
2026-05-31 8:41 ` sashiko-bot
2026-05-31 8:22 ` [PATCH v4 14/15] perf test: Add shell test to validate JUnit XML reporting output Ian Rogers
2026-05-31 8:22 ` [PATCH v4 15/15] perf test: Remove /usr/bin/cc dependency from Intel PT shell test Ian Rogers
2026-05-31 8:38 ` sashiko-bot
2026-06-01 0:05 ` [PATCH v5 00/15] perf test: Accelerate parallel test harness and add JUnit XML reporting Ian Rogers
2026-06-01 0:05 ` [PATCH 01/15] perf jevents.py: Make generated C code more kernel style Ian Rogers
2026-06-01 0:05 ` [PATCH 02/15] perf pmu-events: Add API to get metric table name and iterate tables Ian Rogers
2026-06-01 0:05 ` [PATCH 03/15] perf test: Drain pipe after child finishes to avoid losing output Ian Rogers
2026-06-01 0:05 ` [PATCH 04/15] perf test: Support dynamic test suites with setup callback and private data Ian Rogers
2026-06-01 0:05 ` [PATCH 05/15] perf test pmu-events: A sub-test per metric table Ian Rogers
2026-06-01 0:05 ` [PATCH 06/15] tools subcmd: Robust fallback and existence checks for process reaping Ian Rogers
2026-06-01 0:19 ` sashiko-bot
2026-06-01 0:05 ` [PATCH 07/15] perf test: Refactor parallel poll loop to drain all pipes simultaneously Ian Rogers
2026-06-01 0:19 ` sashiko-bot
2026-06-01 0:05 ` [PATCH 08/15] perf test: Show snippet failure output for verbose=1 Ian Rogers
2026-06-01 0:05 ` [PATCH 09/15] perf test: Add summary reporting Ian Rogers
2026-06-01 0:17 ` sashiko-bot
2026-06-01 0:05 ` [PATCH 10/15] perf test: Fix subtest status alignment for multi-digit indexes Ian Rogers
2026-06-01 0:05 ` [PATCH 11/15] perf test: Skip shebang and SPDX comments in shell test descriptions Ian Rogers
2026-06-01 0:05 ` [PATCH 12/15] perf test: Split monolithic 'util' test suite into sub-tests Ian Rogers
2026-06-01 0:05 ` [PATCH 13/15] perf test: Add -j/--junit option for JUnit XML test reports Ian Rogers
2026-06-01 0:23 ` sashiko-bot
2026-06-01 0:05 ` [PATCH 14/15] perf test: Add shell test to validate JUnit XML reporting output Ian Rogers
2026-06-01 0:05 ` [PATCH 15/15] perf test: Remove /usr/bin/cc dependency from Intel PT shell test Ian Rogers
2026-06-01 0:23 ` sashiko-bot
2026-06-01 6:13 ` [PATCH v6 00/15] perf test: Accelerate parallel test harness and add JUnit XML reporting Ian Rogers
2026-06-01 6:13 ` [PATCH 01/15] perf jevents.py: Make generated C code more kernel style Ian Rogers
2026-06-01 6:25 ` sashiko-bot
2026-06-01 6:13 ` [PATCH 02/15] perf pmu-events: Add API to get metric table name and iterate tables Ian Rogers
2026-06-01 6:13 ` [PATCH 03/15] perf test: Drain pipe after child finishes to avoid losing output Ian Rogers
2026-06-01 6:13 ` [PATCH 04/15] perf test: Support dynamic test suites with setup callback and private data Ian Rogers
2026-06-01 6:27 ` sashiko-bot
2026-06-01 6:13 ` [PATCH 05/15] perf test pmu-events: A sub-test per metric table Ian Rogers
2026-06-01 6:13 ` [PATCH 06/15] tools subcmd: Robust fallback and existence checks for process reaping Ian Rogers
2026-06-01 6:28 ` sashiko-bot
2026-06-01 6:13 ` [PATCH 07/15] perf test: Refactor parallel poll loop to drain all pipes simultaneously Ian Rogers
2026-06-01 6:28 ` sashiko-bot
2026-06-01 6:13 ` [PATCH 08/15] perf test: Show snippet failure output for verbose=1 Ian Rogers
2026-06-01 6:25 ` sashiko-bot
2026-06-01 6:13 ` [PATCH 09/15] perf test: Add summary reporting Ian Rogers
2026-06-01 6:24 ` sashiko-bot
2026-06-01 6:13 ` [PATCH 10/15] perf test: Fix subtest status alignment for multi-digit indexes Ian Rogers
2026-06-01 6:13 ` [PATCH 11/15] perf test: Skip shebang and SPDX comments in shell test descriptions Ian Rogers
2026-06-01 6:13 ` [PATCH 12/15] perf test: Split monolithic 'util' test suite into sub-tests Ian Rogers
2026-06-01 6:13 ` [PATCH 13/15] perf test: Add -j/--junit option for JUnit XML test reports Ian Rogers
2026-06-01 6:33 ` sashiko-bot
2026-06-01 6:14 ` [PATCH 14/15] perf test: Add shell test to validate JUnit XML reporting output Ian Rogers
2026-06-01 6:14 ` [PATCH 15/15] perf test: Remove /usr/bin/cc dependency from Intel PT shell test Ian Rogers
2026-06-01 6:37 ` sashiko-bot
2026-06-02 7:31 ` [PATCH v7 00/16] perf test: Parallel harness optimizations, summary & JUnit XML Ian Rogers
2026-06-02 7:31 ` [PATCH v7] perf tpebs: Fix concurrent stop races and PID reuse hazards in tpebs_stop Ian Rogers
2026-06-02 7:46 ` sashiko-bot [this message]
2026-06-02 7:31 ` [PATCH v7] perf jevents.py: Make generated C code more kernel style Ian Rogers
2026-06-02 7:49 ` sashiko-bot
2026-06-02 7:31 ` [PATCH v7] perf pmu-events: Add API to get metric table name and iterate tables Ian Rogers
2026-06-02 7:31 ` [PATCH v7] perf test: Drain pipe after child finishes to avoid losing output Ian Rogers
2026-06-02 7:31 ` [PATCH v7] perf test: Support dynamic test suites with setup callback and private data Ian Rogers
2026-06-02 7:40 ` sashiko-bot
2026-06-02 7:31 ` [PATCH v7] perf test pmu-events: A sub-test per metric table Ian Rogers
2026-06-02 7:53 ` sashiko-bot
2026-06-02 7:31 ` [PATCH v7] tools subcmd: Robust fallback and existence checks for process reaping Ian Rogers
2026-06-02 7:31 ` [PATCH v7] perf test: Refactor parallel poll loop to drain all pipes simultaneously Ian Rogers
2026-06-02 7:47 ` sashiko-bot
2026-06-02 7:31 ` [PATCH v7] perf test: Show snippet failure output for verbose=1 Ian Rogers
2026-06-02 7:31 ` [PATCH v7] perf test: Add summary reporting Ian Rogers
2026-06-02 7:31 ` [PATCH v7] perf test: Fix subtest status alignment for multi-digit indexes Ian Rogers
2026-06-02 7:31 ` [PATCH v7] perf test: Skip shebang and SPDX comments in shell test descriptions Ian Rogers
2026-06-02 7:49 ` sashiko-bot
2026-06-02 7:31 ` [PATCH v7] perf test: Split monolithic 'util' test suite into sub-tests Ian Rogers
2026-06-02 7:31 ` [PATCH v7] perf test: Add -j/--junit option for JUnit XML test reports Ian Rogers
2026-06-02 7:31 ` [PATCH v7] perf test: Add shell test to validate JUnit XML reporting output Ian Rogers
2026-06-02 9:45 ` sashiko-bot
2026-06-02 17:41 ` [PATCH v8 00/18] perf test: Parallel harness optimizations, summary, JUnit XML & PMU fixes Ian Rogers
2026-06-02 17:41 ` [PATCH v8 01/18] perf tpebs: Fix concurrent stop races and PID reuse hazards in tpebs_stop Ian Rogers
2026-06-02 17:41 ` [PATCH v8 02/18] perf jevents.py: Make generated C code more kernel style Ian Rogers
2026-06-02 17:41 ` [PATCH v8 03/18] perf pmu-events: Add API to get metric table name and iterate tables Ian Rogers
2026-06-02 17:41 ` [PATCH v8 04/18] perf test: Drain pipe after child finishes to avoid losing output Ian Rogers
2026-06-02 17:41 ` [PATCH v8 05/18] perf test: Support dynamic test suites with setup callback and private data Ian Rogers
2026-06-02 17:41 ` [PATCH v8 06/18] perf test pmu-events: A sub-test per metric table Ian Rogers
2026-06-02 17:41 ` [PATCH v8 07/18] tools subcmd: Robust fallback and existence checks for process reaping Ian Rogers
2026-06-02 17:41 ` [PATCH v8 08/18] perf test: Refactor parallel poll loop to drain all pipes simultaneously Ian Rogers
2026-06-02 17:41 ` [PATCH v8 09/18] perf test: Show snippet failure output for verbose=1 Ian Rogers
2026-06-02 17:41 ` [PATCH v8 10/18] perf test: Add summary reporting Ian Rogers
2026-06-02 17:41 ` [PATCH v8 11/18] perf test: Fix subtest status alignment for multi-digit indexes Ian Rogers
2026-06-02 17:41 ` [PATCH v8 12/18] perf test: Skip shebang and SPDX comments in shell test descriptions Ian Rogers
2026-06-02 17:41 ` [PATCH v8 13/18] perf test: Split monolithic 'util' test suite into sub-tests Ian Rogers
2026-06-02 17:41 ` [PATCH v8 14/18] perf test: Add -j/--junit option for JUnit XML test reports Ian Rogers
2026-06-02 17:41 ` [PATCH v8 15/18] perf test: Add shell test to validate JUnit XML reporting output Ian Rogers
2026-06-02 17:41 ` [PATCH v8 16/18] perf test: Remove /usr/bin/cc dependency from Intel PT shell test Ian Rogers
2026-06-02 17:41 ` [PATCH v8 17/18] perf pmu: Recognize 'default_core' as a core PMU and document matching Ian Rogers
2026-06-02 17:41 ` [PATCH v8 18/18] perf test: Truncate printed test descriptions dynamically to avoid terminal wrapping Ian Rogers
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=20260602074656.499C01F00893@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=irogers@google.com \
--cc=linux-perf-users@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox