From: sashiko-bot@kernel.org
To: "Ian Rogers" <irogers@google.com>
Cc: linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v12 01/19] perf env: Add perf_env__e_machine helper and use in perf_env__arch
Date: Tue, 02 Jun 2026 15:43:50 +0000 [thread overview]
Message-ID: <20260602154351.2709F1F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260602152516.2831152-2-irogers@google.com>
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Critical] write_arch() writes a normalized architecture string missing bitness information, causing 64-bit architectures to be misclassified as 32-bit.
- [High] Premature caching of arch-derived `e_machine` disables dynamic thread-based `e_machine` scanning for older `perf.data` files.
- [High] Unsynchronized access to static struct utsname buffer causes data race and potential misclassification of host architecture.
--
commit db9bef861f1ee88707f9b3fa27ee30444f0ff977
Author: Ian Rogers <irogers@google.com>
perf env: Add perf_env__e_machine helper and use in perf_env__arch
This commit adds a helper to lazily compute the e_machine and fallback to
EM_HOST. It updates perf_env__arch to use this helper and modifies the
session header logic to record e_machine without forcing premature thread
scanning.
> diff --git a/tools/perf/util/env.c b/tools/perf/util/env.c
> --- a/tools/perf/util/env.c
> +++ b/tools/perf/util/env.c
[ ... ]
> @@ -309,15 +311,27 @@ void perf_env__init(struct perf_env *env)
>
> static void perf_env__init_kernel_mode(struct perf_env *env)
> {
> - const char *arch = perf_env__raw_arch(env);
> + const char *arch = env->arch;
>
> - if (!strncmp(arch, "x86_64", 6) || !strncmp(arch, "aarch64", 7) ||
> - !strncmp(arch, "arm64", 5) || !strncmp(arch, "mips64", 6) ||
> - !strncmp(arch, "parisc64", 8) || !strncmp(arch, "riscv64", 7) ||
> - !strncmp(arch, "s390x", 5) || !strncmp(arch, "sparc64", 7))
> - env->kernel_is_64_bit = 1;
> - else
> - env->kernel_is_64_bit = 0;
> + if (!arch) {
> + static struct utsname uts = { .machine[0] = '\0', };
> +
> + if (uts.machine[0] == '\0')
> + uname(&uts);
> + if (uts.machine[0] != '\0')
> + arch = uts.machine;
> + }
[Severity: High]
Is it safe to use a lockless check for this static buffer here, as well as in
perf_env__e_machine_nocache() and perf_env__arch()?
If multiple threads concurrently trigger uname(&uts), could one thread observe
uts.machine[0] != '\0' immediately after the kernel writes the first byte?
Since uname copies data sequentially, might a thread read a partially written
string (e.g., 'x8' instead of 'x86_64'), leading to a misclassified host
architecture during multi-threaded profiling?
It appears that while a subsequent commit ("perf env: Add mutex to protect
lazy environment initialization") adds env->lock to perf_env for os_release,
it might not protect these local static buffers.
[ ... ]
> @@ -588,51 +602,237 @@ void cpu_cache_level__free(struct cpu_cache_level *cache)
[ ... ]
> +uint16_t perf_env__e_machine(struct perf_env *env, uint32_t *e_flags)
> +{
> + uint16_t e_machine;
> + uint32_t local_e_flags = 0;
> +
> + if (env && env->e_machine != EM_NONE) {
> + if (e_flags)
> + *e_flags = env->e_flags;
> +
> + return env->e_machine;
> + }
> + e_machine = perf_env__e_machine_nocache(env, &local_e_flags);
> + /*
> + * Only cache the e_machine in perf_env if env->arch is not NULL.
> + * If env->arch is NULL, the e_machine is just a fallback to EM_HOST.
> + * Caching it permanently would prevent dynamic, more accurate
> + * thread-based session e_machine scanning later in
> + * perf_session__e_machine().
> + */
> + if (env && env->arch) {
> + env->e_machine = e_machine;
> + env->e_flags = local_e_flags;
> + }
[Severity: High]
Could this cache the arch-derived value into env->e_machine simply because
env->arch is present?
If this caches the value prematurely, might older perf.data files that lack
HEADER_E_MACHINE have env->e_machine populated before the threads are scanned?
When functions like thread__insert_map() invoke thread__e_machine_endian(),
they fall back to perf_env__e_machine() and perf_env__arch() if a DSO is not
yet loaded. Does this lock in the arch-derived host value prematurely?
> + if (e_flags)
> + *e_flags = local_e_flags;
> +
> + return e_machine;
> }
[ ... ]
> diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> --- a/tools/perf/util/header.c
> +++ b/tools/perf/util/header.c
> @@ -441,21 +441,25 @@ static int write_osrelease(struct feat_fd *ff,
[ ... ]
> -static int write_arch(struct feat_fd *ff,
> - struct evlist *evlist __maybe_unused)
> +static int write_arch(struct feat_fd *ff, struct evlist *evlist)
> {
> struct utsname uts;
> - int ret;
> + const char *arch = NULL;
>
> - ret = uname(&uts);
> - if (ret < 0)
> - return -1;
> + if (evlist->session)
> + arch = perf_env__arch(perf_session__env(evlist->session));
> +
> + if (!arch) {
> + int ret = uname(&uts);
>
> - return do_write_string(ff, uts.machine);
> + if (ret < 0)
> + return -1;
> + arch = uts.machine;
> + }
> + return do_write_string(ff, arch);
> }
[Severity: Critical]
Does this code write the normalized architecture string lacking bitness
information to the perf.data header instead of the full uts.machine string?
If perf_env__arch() normalizes the architecture name (e.g., 'x86_64' to 'x86'),
the resulting string will miss the '64' substring.
Later in perf_env__init_kernel_mode():
if (arch) {
if (strstr(arch, "64") || strstr(arch, "s390x"))
env->kernel_is_64_bit = 1;
else
env->kernel_is_64_bit = 0;
return;
}
Could this cause kernel_is_64_bit to incorrectly evaluate to 0 for 64-bit
architectures like x86, powerpc, and sparc, leading to broken kernel symbol
resolution, broken dynamic architecture fallbacks, and loss of backwards
compatibility for older perf versions reading newly recorded files?
[ ... ]
> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> --- a/tools/perf/util/session.c
> +++ b/tools/perf/util/session.c
> @@ -4080,14 +4080,19 @@ uint16_t perf_session__e_machine(struct perf_session *session, uint32_t *e_flags
[ ... ]
> + /*
> + * Is the env caching an e_machine? If not we want to compute from the
> + * more accurate threads.
> + */
> env = perf_session__env(session);
> - if (env && env->e_machine != EM_NONE) {
> - if (e_flags)
> - *e_flags = env->e_flags;
> -
> - return env->e_machine;
> - }
> + if (env && env->e_machine != EM_NONE)
> + return perf_env__e_machine(env, e_flags);
[Severity: High]
Does this early return consume the prematurely cached value from
perf_env__e_machine()?
If env->e_machine was populated early because env->arch was present, would
this bypass the machines__for_each_thread() scan entirely, preventing the
dynamic detection of 32-bit compat tasks on a 64-bit host for older perf.data
files?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260602152516.2831152-1-irogers@google.com?part=1
next prev parent reply other threads:[~2026-06-02 15:43 UTC|newest]
Thread overview: 194+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-19 11:38 [PATCH v2] perf symbol: Remove psw_idle() from list of idle symbols Thomas Richter
2026-02-19 11:55 ` Jan Polensky
2026-02-23 21:46 ` Namhyung Kim
2026-02-23 23:14 ` Arnaldo Melo
2026-03-02 18:43 ` Arnaldo Carvalho de Melo
2026-03-02 19:44 ` Ian Rogers
2026-03-04 14:34 ` Arnaldo Carvalho de Melo
2026-03-02 23:43 ` [PATCH v1] perf symbol: Lazily compute idle and use the perf_env Ian Rogers
2026-03-24 17:14 ` Ian Rogers
2026-03-25 6:58 ` Namhyung Kim
2026-03-25 15:58 ` Ian Rogers
2026-03-25 16:18 ` [PATCH v2] " Ian Rogers
2026-03-26 7:20 ` Honglei Wang
2026-03-26 15:11 ` Ian Rogers
2026-03-26 17:45 ` [PATCH v3 0/2] perf symbol/env: ELF machine clean up and lazy idle computation Ian Rogers
2026-03-26 17:45 ` [PATCH v3 1/2] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-03-26 17:45 ` [PATCH v3 2/2] perf symbol: Lazily compute idle and use the perf_env Ian Rogers
2026-03-27 6:56 ` Honglei Wang
2026-03-27 4:50 ` [PATCH v4 0/2] perf symbol/env: ELF machine clean up and lazy idle computation Ian Rogers
2026-03-27 4:50 ` [PATCH v4 1/2] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-04-06 5:05 ` Namhyung Kim
2026-04-06 15:36 ` Ian Rogers
2026-03-27 4:50 ` [PATCH v4 2/2] perf symbol: Lazily compute idle and use the perf_env Ian Rogers
2026-04-06 5:10 ` Namhyung Kim
2026-04-06 16:11 ` Ian Rogers
2026-04-06 17:09 ` [PATCH v5 0/3] perf symbol/env: ELF machine clean up and lazy idle computation Ian Rogers
2026-04-06 17:09 ` [PATCH v5 1/3] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-04-06 17:09 ` [PATCH v5 2/3] perf env: Add helper to lazily compute the os_release Ian Rogers
2026-04-06 17:09 ` [PATCH v5 3/3] perf symbol: Lazily compute idle and use the perf_env Ian Rogers
2026-04-09 23:06 ` [PATCH v6 0/3] perf symbol/env: ELF machine clean up and lazy idle computation Ian Rogers
2026-04-09 23:06 ` [PATCH v6 1/3] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-04-09 23:37 ` sashiko-bot
2026-05-01 18:20 ` [PATCH v7 0/4] perf symbol/env: ELF machine clean up and lazy idle computation Ian Rogers
2026-05-01 18:20 ` [PATCH v7 1/4] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-05-01 18:56 ` sashiko-bot
2026-05-01 18:20 ` [PATCH v7 2/4] perf env: Add helper to lazily compute the os_release Ian Rogers
2026-05-01 19:20 ` sashiko-bot
2026-05-01 18:20 ` [PATCH v7 3/4] perf symbol: Add setters for bitfields sharing a byte to avoid concurrent update issues Ian Rogers
2026-05-01 19:42 ` sashiko-bot
2026-05-01 18:20 ` [PATCH v7 4/4] perf symbol: Lazily compute idle and use a global lock for updates Ian Rogers
2026-05-01 20:13 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 00/17] perf symbol/env: ELF machine clean up and lazy idle computation Ian Rogers
2026-05-02 6:59 ` [PATCH v8 01/17] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-05-02 7:56 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 02/17] perf tests topology: Switch env->arch use to env->e_machine Ian Rogers
2026-05-02 6:59 ` [PATCH v8 03/17] perf capstone: Determine architecture from e_machine Ian Rogers
2026-05-02 7:58 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 04/17] perf print_insn: Use e_machine for fallback IP length check Ian Rogers
2026-05-02 7:55 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 05/17] perf machine: Use perf_env e_machine rather than arch Ian Rogers
2026-05-02 7:11 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 06/17] perf sample-raw: " Ian Rogers
2026-05-02 6:59 ` [PATCH v8 07/17] perf sort: " Ian Rogers
2026-05-02 6:59 ` [PATCH v8 08/17] perf symbol: Avoid use of machine__is Ian Rogers
2026-05-02 7:17 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 09/17] perf arch common: Use perf_env e_machine rather than arch Ian Rogers
2026-05-02 7:59 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 10/17] perf header: In print_pmu_caps use perf_env e_machine Ian Rogers
2026-05-02 6:59 ` [PATCH v8 11/17] perf c2c: Use perf_env e_machine rather than arch Ian Rogers
2026-05-02 7:44 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 12/17] perf lock-contention: " Ian Rogers
2026-05-02 6:59 ` [PATCH v8 13/17] perf env: Refactor perf_env__arch_strerrno Ian Rogers
2026-05-02 6:59 ` [PATCH v8 14/17] perf env: Remove unused perf_env__raw_arch Ian Rogers
2026-05-02 6:59 ` [PATCH v8 15/17] perf env: Add helper to lazily compute the os_release Ian Rogers
2026-05-02 7:53 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 16/17] perf symbol: Add setters for bitfields sharing a byte to avoid concurrent update issues Ian Rogers
2026-05-02 7:55 ` sashiko-bot
2026-05-02 6:59 ` [PATCH v8 17/17] perf symbol: Lazily compute idle and use a global lock for updates Ian Rogers
2026-05-03 0:22 ` [PATCH v9 00/18] perf symbol/env: ELF machine clean up and lazy idle computation Ian Rogers
2026-05-03 0:22 ` [PATCH v9 01/18] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-05-03 0:52 ` sashiko-bot
2026-05-04 1:35 ` Namhyung Kim
2026-05-03 0:22 ` [PATCH v9 02/18] perf tests topology: Switch env->arch use to env->e_machine Ian Rogers
2026-05-03 0:22 ` [PATCH v9 03/18] perf env, dso, thread: Add _endian variants for e_machine helpers Ian Rogers
2026-05-03 0:39 ` sashiko-bot
2026-05-03 0:22 ` [PATCH v9 04/18] perf capstone: Determine architecture from e_machine Ian Rogers
2026-05-03 0:50 ` sashiko-bot
2026-05-03 0:22 ` [PATCH v9 05/18] perf print_insn: Use e_machine for fallback IP length check Ian Rogers
2026-05-03 0:22 ` [PATCH v9 06/18] perf symbol: Avoid use of machine__is Ian Rogers
2026-05-03 0:51 ` sashiko-bot
2026-05-03 0:22 ` [PATCH v9 07/18] perf machine: Use perf_env e_machine rather than arch Ian Rogers
2026-05-03 1:00 ` sashiko-bot
2026-05-03 0:22 ` [PATCH v9 08/18] perf sample-raw: " Ian Rogers
2026-05-03 0:22 ` [PATCH v9 09/18] perf sort: " Ian Rogers
2026-05-03 0:22 ` [PATCH v9 10/18] perf arch common: " Ian Rogers
2026-05-03 0:38 ` sashiko-bot
2026-05-03 0:22 ` [PATCH v9 11/18] perf header: In print_pmu_caps use perf_env e_machine Ian Rogers
2026-05-03 0:22 ` [PATCH v9 12/18] perf c2c: Use perf_env e_machine rather than arch Ian Rogers
2026-05-03 0:22 ` [PATCH v9 13/18] perf lock-contention: " Ian Rogers
2026-05-03 0:22 ` [PATCH v9 14/18] perf env: Refactor perf_env__arch_strerrno Ian Rogers
2026-05-03 1:11 ` sashiko-bot
2026-05-03 0:22 ` [PATCH v9 15/18] perf env: Remove unused perf_env__raw_arch Ian Rogers
2026-05-03 0:22 ` [PATCH v9 16/18] perf env: Add helper to lazily compute the os_release Ian Rogers
2026-05-03 1:00 ` sashiko-bot
2026-05-03 0:22 ` [PATCH v9 17/18] perf symbol: Add setters for bitfields sharing a byte to avoid concurrent update issues Ian Rogers
2026-05-03 0:59 ` sashiko-bot
2026-05-03 0:22 ` [PATCH v9 18/18] perf symbol: Lazily compute idle Ian Rogers
2026-05-03 1:11 ` sashiko-bot
2026-06-01 6:53 ` [PATCH v10 00/18] Add perf_env__e_machine and migrate arch string comparisons to e_machine Ian Rogers
2026-06-01 6:53 ` [PATCH v10 01/18] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-06-01 7:08 ` sashiko-bot
2026-06-01 6:53 ` [PATCH v10 02/18] perf tests topology: Switch env->arch use to env->e_machine Ian Rogers
2026-06-01 6:53 ` [PATCH v10 03/18] perf env, dso, thread: Add _endian variants for e_machine helpers Ian Rogers
2026-06-01 7:07 ` sashiko-bot
2026-06-01 6:53 ` [PATCH v10 04/18] perf capstone: Determine architecture from e_machine Ian Rogers
2026-06-01 7:08 ` sashiko-bot
2026-06-01 6:53 ` [PATCH v10 05/18] perf print_insn: Use e_machine for fallback IP length check Ian Rogers
2026-06-01 6:53 ` [PATCH v10 06/18] perf symbol: Avoid use of machine__is Ian Rogers
2026-06-01 6:53 ` [PATCH v10 07/18] perf machine: Use perf_env e_machine rather than arch Ian Rogers
2026-06-01 6:53 ` [PATCH v10 08/18] perf sample-raw: " Ian Rogers
2026-06-01 6:53 ` [PATCH v10 09/18] perf sort: " Ian Rogers
2026-06-01 6:53 ` [PATCH v10 10/18] perf arch common: " Ian Rogers
2026-06-01 7:08 ` sashiko-bot
2026-06-01 6:54 ` [PATCH v10 11/18] perf header: In print_pmu_caps use perf_env e_machine Ian Rogers
2026-06-01 6:54 ` [PATCH v10 12/18] perf c2c: Use perf_env e_machine rather than arch Ian Rogers
2026-06-01 6:54 ` [PATCH v10 13/18] perf lock-contention: " Ian Rogers
2026-06-01 6:54 ` [PATCH v10 14/18] perf env: Refactor perf_env__arch_strerrno Ian Rogers
2026-06-01 7:34 ` sashiko-bot
2026-06-01 6:54 ` [PATCH v10 15/18] perf env: Remove unused perf_env__raw_arch Ian Rogers
2026-06-01 6:54 ` [PATCH v10 16/18] perf env: Add helper to lazily compute the os_release Ian Rogers
2026-06-01 7:17 ` sashiko-bot
2026-06-01 6:54 ` [PATCH v10 17/18] perf symbol: Add setters for bitfields sharing a byte to avoid concurrent update issues Ian Rogers
2026-06-01 7:19 ` sashiko-bot
2026-06-01 6:54 ` [PATCH v10 18/18] perf symbol: Lazily compute idle Ian Rogers
2026-06-01 7:19 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 00/19] perf: Use e_machine and lazily compute symbols Ian Rogers
2026-06-02 6:24 ` [PATCH v11 01/19] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-06-02 6:41 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 02/19] perf tests topology: Switch env->arch use to env->e_machine Ian Rogers
2026-06-02 6:24 ` [PATCH v11 03/19] perf env, dso, thread: Add _endian variants for e_machine helpers Ian Rogers
2026-06-02 6:41 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 04/19] perf capstone: Determine architecture from e_machine Ian Rogers
2026-06-02 6:38 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 05/19] perf print_insn: Use e_machine for fallback IP length check Ian Rogers
2026-06-02 6:46 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 06/19] perf symbol: Avoid use of machine__is Ian Rogers
2026-06-02 6:41 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 07/19] perf machine: Use perf_env e_machine rather than arch Ian Rogers
2026-06-02 6:24 ` [PATCH v11 08/19] perf sample-raw: " Ian Rogers
2026-06-02 6:24 ` [PATCH v11 09/19] perf sort: " Ian Rogers
2026-06-02 6:24 ` [PATCH v11 10/19] perf arch common: " Ian Rogers
2026-06-02 6:41 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 11/19] perf header: In print_pmu_caps use perf_env e_machine Ian Rogers
2026-06-02 6:24 ` [PATCH v11 12/19] perf c2c: Use perf_env e_machine rather than arch Ian Rogers
2026-06-02 6:24 ` [PATCH v11 13/19] perf lock-contention: " Ian Rogers
2026-06-02 6:42 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 14/19] perf env: Refactor perf_env__arch_strerrno Ian Rogers
2026-06-02 7:00 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 15/19] perf env: Remove unused perf_env__raw_arch Ian Rogers
2026-06-02 6:24 ` [PATCH v11 16/19] perf env: Add mutex to protect lazy environment initialization Ian Rogers
2026-06-02 6:45 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 17/19] perf env: Add helper to lazily compute the os_release Ian Rogers
2026-06-02 6:50 ` sashiko-bot
2026-06-02 6:24 ` [PATCH v11 18/19] perf symbol: Add setters for bitfields sharing a byte to avoid concurrent update issues Ian Rogers
2026-06-02 6:24 ` [PATCH v11 19/19] perf symbol: Lazily compute idle Ian Rogers
2026-06-02 15:24 ` [PATCH v12 00/19] perf: Use e_machine and lazily compute symbols Ian Rogers
2026-06-02 15:24 ` [PATCH v12 01/19] perf env: Add perf_env__e_machine helper and use in perf_env__arch Ian Rogers
2026-06-02 15:43 ` sashiko-bot [this message]
2026-06-02 15:24 ` [PATCH v12 02/19] perf tests topology: Switch env->arch use to env->e_machine Ian Rogers
2026-06-02 15:25 ` [PATCH v12 03/19] perf env, dso, thread: Add _endian variants for e_machine helpers Ian Rogers
2026-06-02 15:42 ` sashiko-bot
2026-06-02 15:25 ` [PATCH v12 04/19] perf capstone: Determine architecture from e_machine Ian Rogers
2026-06-02 15:42 ` sashiko-bot
2026-06-02 15:25 ` [PATCH v12 05/19] perf print_insn: Use e_machine for fallback IP length check Ian Rogers
2026-06-02 15:25 ` [PATCH v12 06/19] perf symbol: Avoid use of machine__is Ian Rogers
2026-06-02 15:43 ` sashiko-bot
2026-06-02 15:25 ` [PATCH v12 07/19] perf machine: Use perf_env e_machine rather than arch Ian Rogers
2026-06-02 15:25 ` [PATCH v12 08/19] perf sample-raw: " Ian Rogers
2026-06-02 15:25 ` [PATCH v12 09/19] perf sort: " Ian Rogers
2026-06-02 15:25 ` [PATCH v12 10/19] perf arch common: " Ian Rogers
2026-06-02 15:25 ` [PATCH v12 11/19] perf header: In print_pmu_caps use perf_env e_machine Ian Rogers
2026-06-02 15:25 ` [PATCH v12 12/19] perf c2c: Use perf_env e_machine rather than arch Ian Rogers
2026-06-02 15:25 ` [PATCH v12 13/19] perf lock-contention: " Ian Rogers
2026-06-02 15:25 ` [PATCH v12 14/19] perf env: Refactor perf_env__arch_strerrno Ian Rogers
2026-06-02 15:25 ` [PATCH v12 15/19] perf env: Remove unused perf_env__raw_arch Ian Rogers
2026-06-02 15:25 ` [PATCH v12 16/19] perf env: Add mutex to protect lazy environment initialization Ian Rogers
2026-06-02 15:57 ` sashiko-bot
2026-06-02 15:25 ` [PATCH v12 17/19] perf env: Add helper to lazily compute the os_release Ian Rogers
2026-06-02 15:55 ` sashiko-bot
2026-06-02 15:25 ` [PATCH v12 18/19] perf symbol: Add setters for bitfields sharing a byte to avoid concurrent update issues Ian Rogers
2026-06-02 15:25 ` [PATCH v12 19/19] perf symbol: Lazily compute idle Ian Rogers
2026-06-02 16:53 ` [PATCH v12 00/19] perf: Use e_machine and lazily compute symbols Ian Rogers
2026-06-03 5:39 ` Namhyung Kim
2026-06-03 19:47 ` Arnaldo Carvalho de Melo
2026-06-03 21:41 ` Arnaldo Carvalho de Melo
2026-06-03 21:45 ` Arnaldo Carvalho de Melo
2026-04-09 23:06 ` [PATCH v6 2/3] perf env: Add helper to lazily compute the os_release Ian Rogers
2026-04-09 23:50 ` sashiko-bot
2026-04-09 23:06 ` [PATCH v6 3/3] perf symbol: Lazily compute idle and use the perf_env Ian Rogers
2026-04-10 0:11 ` sashiko-bot
2026-03-27 6:00 ` [PATCH v2] perf tests task-analyzer: Write test files to tmpdir Ian Rogers
2026-03-31 7:22 ` Namhyung Kim
2026-03-31 17:58 ` Ian Rogers
2026-04-01 3:41 ` 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=20260602154351.2709F1F00893@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 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.