From: Namhyung Kim <namhyung@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: acme@kernel.org, howardchu95@gmail.com, adrian.hunter@intel.com,
james.clark@linaro.org, jolsa@kernel.org,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
mingo@redhat.com, peterz@infradead.org
Subject: Re: [PATCH v5 00/23] perf trace: Fix BPF filtering and make tracing tests non-exclusive
Date: Thu, 24 Sep 2026 00:05:42 -0700 [thread overview]
Message-ID: <arTLxu9SXPVf1V7S@z2> (raw)
In-Reply-To: <cover.1790145937.git.irogers@google.com>
On Wed, Sep 23, 2026 at 12:13:40AM -0700, Ian Rogers wrote:
> perf trace's BPF augmentation attaches to raw_syscalls:sys_enter and
> raw_syscalls:sys_exit system wide, and used the program return value to
> decide whether a syscall was interesting. Returning 0 from a
> BPF_PROG_TYPE_TRACEPOINT program makes perf_trace_run_bpf_submit() drop
> the event for every listener on that tracepoint, not just for the perf
> trace that installed the program. Any concurrent perf trace, perf record
> or ftrace session watching raw_syscalls therefore lost events, which is
> one of the reasons so many of the perf trace and perf probe shell tests
> had to be marked (exclusive) and run on their own.
>
> Patches 1 to 6 are independent fixes to the code the rest of the series
> goes on to rework or to rely on.
>
> Patches 7 to 10 fix how an augmented argument is read back. They skip
> the __data_loc internal tracepoint fields that syscalls:sys_enter_*
> gained in 6.19 for syscalls only, bounds check every read of an
> augmented payload, and stop the ring buffer padding at the end of a
> sample being offered to the beautifiers as one. Patch 8 fixes the
> SIGSEGV Arnaldo hit testing v4.
>
> Patches 11 to 15 fix perf trace's filtering. They stop the return value
> being used as a filter and do the filtering in BPF maps instead, stop
> the sys_exit program array tail calling a sys_enter augmenter, and
> replace the userspace PERF_RECORD_FORK/PERF_RECORD_EXIT bookkeeping with
> BTF-typed raw tracepoint programs on sched_process_{fork,exit,exec}. A
> task is then registered before its first syscall and evicted in
> do_exit(), rather than whenever userspace next drains the ring buffer.
>
> Patches 16 to 23 deal with the tests. Several collided with each other
> through global state rather than through perf trace: fixed probe names,
> clear_all_probes() disabling every tracepoint on the system, and perf
> trace's hardcoded "probe:vfs_getname*" wildcard pinning probes belonging
> to other tests. With those scoped to a pid they can drop (exclusive) and
> run in parallel again.
>
> Patches 1 and 2 fix pre-existing bugs that stand on their own and can be
> applied ahead of the rest. Only patch 9 depends on them.
>
> Tested on x86_64. The trace and probe tests pass under 'perf test -r3',
> which runs the repeats concurrently. Every patch builds individually,
> and the series also builds with BUILD_BPF_SKEL=0.
Thanks for working on this.
But as I said to Arnaldo too, can you please guide your coding agent to
produce more concise texts? Sometimes it takes me too long to read the
whole messages and comments and I feel like they are too verbose and
often duplicate.
Thanks,
Namhyung
>
> Changes since v4:
> - New patch 1 fills in the size in the augmented argument header in the
> four augmenters that left it unset: sendto, perf_event_open,
> nanosleep and clock_nanosleep. They all build a payload for a fixed
> size type, and the beautifiers cast it directly rather than reading
> the length, so nothing has needed it so far. Patch 9 starts checking
> it. While there, report a failed bpf_probe_read_user() rather than
> claiming success for it: the payload length is set to zero and the
> error recorded in the header, so userspace falls back to printing the
> raw pointer instead of whatever the per-CPU scratch buffer last held.
> - New patch 2 includes the augmented argument header in nanosleep's
> payload length. It used sizeof(augmented_args->args) where its three
> siblings use sizeof(u64) + sizeof(augmented_args->args), so the
> record was eight bytes short of the struct timespec it carries and
> tv_nsec was printed half from the ring buffer.
> - Patch 7 only skips the internal tracepoint fields when it is setting
> up a syscall. syscall_arg_fmt__init_array() is also called for an
> ordinary tracepoint by evsel__init_tp_arg_scnprintf(), and
> trace__fprintf_tp_fields() walks that array in lockstep with the
> field list, so packing the entries shifted every formatter along by
> one from the field it belongs to. 'perf trace -e
> sched:sched_process_exec' printed its filename with the pid
> beautifier. The syscall path indexes the array packed and is
> unaffected, so the two callers now ask for what each of them needs.
> - New patch 8 bounds checks an augmented argument before reading it.
> This is the SIGSEGV Arnaldo reported on v4. The check
> btf_struct_scnprintf() already had is lifted into a shared
> syscall_arg__augmented_args_valid() in beauty.h and used at every
> site that reads an augmented payload, in particular
> syscall_arg__scnprintf_buf(), which looped to a length taken from the
> payload with nothing bounding it and walked off the end of the 8K
> argbuf in bss.
> - New patch 9 bounds the beautifiers that read a fixed size type out of
> a payload that may be shorter than it. perf_event_attr__fprintf()
> always reads a whole struct perf_event_attr, so the payload is copied
> into a zero padded local rather than read in place, and the AF_LOCAL
> socket address is printed with a length from the payload rather than
> as a string it need not be. Split out from patch 8 so the crash fix
> stays minimal.
> - New patch 10 recognises the padding at the end of a sample for what
> it is. perf_sample_save_raw_data() rounds the raw size up to eight
> bytes and __output_skip() advances over the padding rather than
> zeroing it, so a 64 byte struct syscall_enter_args comes back as 68
> bytes and userspace took the four stale bytes for an augmented
> argument. A trailing run shorter than a struct augmented_arg cannot
> be one.
> - Patch 13 notes that a descendant added to pids_filtered by
> sched_process_fork() can still have a sys_exit printed without a
> matching enter. The raw_syscalls:sys_exit evsel is still in the
> evlist and its tracepoint filter is set once, so it never learns of
> the descendants, and a tracepoint program can only suppress an event
> by vetoing it, which is what this series removes. It needs
> --filter-pids naming a process that then forks. Routing sys_exit
> through __augmented_syscalls__ the way sys_enter now is would close
> it.
> - Patch 14 notes that a thread the target creates during the attach
> window is still missed by 'perf trace -t'. The re-enumeration reads
> /proc/<tid>/task/<tid>/children, which lists forked processes, and
> copy_process() makes a CLONE_THREAD child a sibling of its creator
> rather than a child of it. /proc does not record which task in a
> group created which, so such a sibling cannot be told apart from one
> -t was deliberately pointed away from.
>
> Changes since v3:
> - New patch 3 returns -ENOMEM rather than -1 from evsel__set_filter(),
> evsel__append_filter(), evlist__set_tp_filter() and
> evlist__append_tp_filter(). An allocation is the only thing that can
> fail in any of them, and patch 7 goes on to print what they return,
> where -1 negated is EPERM and a failure to allocate would have been
> reported as "Operation not permitted".
> - Patch 5 sets sc->args only once the arg_fmt array that is indexed
> alongside it has been allocated. Publishing the field first left a
> syscall with args set and arg_fmt NULL, and since sc->name is already
> set by then a later syscall__read_info() returns success without
> retrying the allocation, leaving syscall_arg_fmt__mask_val() to
> dereference NULL.
> - Patch 7 adds the raw_syscalls tracepoints in trace__run() only if
> they are not in the evlist already, and stops ignoring the result of
> trace__add_syscall_newtp(). cmd_trace() adds them before it creates
> the bpf-output event, and on the paths where that creation fails they
> were added a second time, giving the session two enter and two exit
> evsels for the same pair of tracepoints.
> - Patch 7 no longer abandons the session when a target does not fit in
> the pid map. bpf_map__update_elem() answers -E2BIG once max_entries
> keys are present, so a target with more threads than the map has room
> for took perf trace down with it, on exactly the large workloads
> where there is least else to reach for. The tasks that fit are added
> and a warning says how many did not.
> - Patch 9 includes <sys/types.h> for the pid_t it uses rather than
> relying on the include chain to drag it in.
> - Patch 9 no longer ends the session when the target has already
> exited. thread_map__new_by_pid() fails with ENOENT once
> /proc/<pid>/task is gone, which is the ordinary outcome of
> 'perf trace -p' on a short lived process, so only ENOMEM is now
> propagated and everything else is logged and stepped over.
> - Patch 9 reads /proc once per thread group instead of once per thread.
> 'perf trace -p' names every thread of the target in the thread map
> and /proc/<tid>/task lists the whole group whichever thread it is
> asked through, so the enumeration was quadratic in the number of
> threads. On a 64 thread target it went from 65 directory reads and
> 4097 entries to 2 and 65, for the same set of pids.
> - New patch 10 removes from the BPF maps the tasks that died before
> userspace got round to writing them there. sched_process_exit() can
> only delete a pid that is already in the map, so a target that exits
> during startup leaves an entry behind for the rest of the session,
> and since pids are reused an unrelated task then gets traced, or
> silently filtered out, in its place. The map is walked with the
> cursor left on a task found alive, which is one the walk has decided
> to keep, so its own deletions can never leave the cursor on a key
> that htab_map_get_next_key() will answer by starting the walk over.
>
> Changes since v2:
> - Rebased onto the current perf-tools-next.
> - Patch 1 also includes <assert.h>, for the assert() in
> augmented_syscalls__create_bpf_output().
> - New patch 2 makes evsel__put_and_free_priv() free the whole
> evsel_trace. It only zfree()d the struct, leaking the syscall_arg_fmt
> array hanging off it. No caller can reach that today, but patch 6
> adds one that discards a fully set up evsel.
> - Patch 6 identifies the evsel to drop from the evlist by comparing
> against trace.syscalls.events.sys_enter instead of a strstr() for
> "syscalls:sys_enter". That substring also matches the per syscall
> syscalls:sys_enter_SYSCALL tracepoints, so a user asking for one of
> those by name would have had it removed from the evlist, and
> __augmented_syscalls__ described with its tracefs format rather than
> the raw tracepoint's.
> - Patch 6 reports a failure to program the pid filters with the error
> that caused it. trace__run() sent everything trace__set_filter_pids()
> returned to out_error_mem, which prints "Not enough memory to run!".
> That was already a guess, and a wrong one now the function writes BPF
> maps too.
> - Patch 7 moves the pid across in sched_process_exec() by deleting the
> old key before inserting the new one. The move is only a rename, but
> holding both keys at once needs a spare slot, and on a full map the
> insert failed with -E2BIG while the delete still succeeded, losing
> the task instead of moving it.
> - Patch 7 no longer claims that a task forked during the attach window
> is still traced unaugmented. That was wrong: cmd_trace() removes the
> sys_enter evsel once the bpf-output event exists, so
> __augmented_syscalls__ is the only source of enter events and such a
> task is not reported at all. Describe what is really lost, why the
> tgid fallback is not kept as a safety net for it, note that only
> 'perf trace -p' is exposed, and that closing it needs the target's
> descendants re-enumerated from /proc after the attach.
> - Patch 7 drops the parent tgid test from sched_process_fork(), so a
> child inherits from the pid of the thread that called clone() and
> from nothing else. The lookups only ever match a task's own pid, and
> every thread of a -p target is enumerated from /proc/<pid>/task and
> inserted in its own right, so the tgid added no reach. What it did
> add was a child inheriting from a thread that is not traced itself,
> such as a sibling of the thread 'perf trace -t' selected.
> - Patch 7 ends the session with the error that caused it when the BPF
> programs cannot be attached, rather than printing a bare errno left
> over from unwinding the attach. There is nothing to fall back to at
> that point, cmd_trace() has already built the evlist around
> __augmented_syscalls__ and dropped the sys_enter evsel, and the code
> being replaced did not fall back either: it ignored the result of
> augmented_raw_syscalls_bpf__attach() altogether.
> - New patch 8 reads the target out of /proc again once the BPF programs
> are attached, so a task the target created while perf trace was
> starting up is traced rather than missed for the whole session. This
> is the gap patch 7 describes and left for later. It covers the
> target's new threads and, through task->children, anything it or they
> forked, to any depth. What is left is a task that made syscalls
> between sys_enter going live and being added to the map, which is
> momentary rather than lasting for the session.
> - Patch 9 bails out if mktemp fails rather than carrying on with an
> empty $tmpdir. cd rejects the null directory, and the rmdir that was
> meant to undo the mktemp then failed to remove '' instead. Its
> cleanup() also no longer exits when it cannot cd out of the temporary
> directory, which would have skipped removing it. The removal takes an
> absolute path and does not need the cd to have succeeded.
> - Patch 10 now narrows the disable in clear_all_probes() to the probes
> themselves rather than dropping it. Clearing kprobe_events or
> uprobe_events is all or nothing: dyn_events_release_all() returns
> -EBUSY without removing anything if it finds a probe that is still
> enabled, so simply removing the write could leave stale probes behind
> to collide with the next run. The set to disable is read from the
> kprobe_events and uprobe_events listings rather than assumed to be
> the groups perf uses, since a probe left enabled in another group,
> such as the default kprobes group used when kprobe_events is written
> directly, would abort the clear just the same.
> - Patch 11 deletes the probes from an exit trap as well as on the way
> out. A pid scoped name is never seen again, so a run interrupted
> before cleanup_probe_vfs_getname() left its probes behind for good,
> a set per run, where the fixed name was at least found and reused by
> the next run.
> - Patch 12 retries deleting the uprobe. Deletion writes uprobe_events
> just as addition does and can lose the same race with a concurrent
> test, and because the event name is now pid scoped a probe left
> behind is never overwritten by a later run. It also bails out if
> mktemp fails and quotes the path in the emptiness check, which
> unquoted would have tested the string "-s" and reported success.
> - Patch 13 prints the tail of the output rather than the head. The
> pattern it matches only appears in the summary, which is printed
> after any trace output, so the head of the file is not the part that
> failed to match.
>
> Changes since v1:
> - New patch 1 includes <sys/types.h> and <string.h> for the pid_t and
> strcmp() uses that were relying on the include chain happening to
> drag them in, which does not hold on libcs such as musl.
> - Patch 6 no longer returns success when the event qualifier filter
> string fails to allocate. err now defaults to 0 because either
> tracepoint may legitimately be absent, so the ENOMEM path has to set
> the error itself rather than rely on that default. It also includes
> <stdbool.h> for the bool parameters it adds to trace_augment.h.
> - Patch 9 removes the temporary directory if the cd into it fails.
> That happens before the cleanup trap is installed, so the directory
> would otherwise be left behind in /tmp.
>
> Ian Rogers (23):
> perf trace: Set the augmented arg header in the augmenters that omit
> it
> perf trace: Include the augmented arg header in nanosleep's payload
> length
> perf trace: Include the headers declaring pid_t, strcmp and assert
> perf trace: Free the whole evsel_trace in evsel__put_and_free_priv
> perf evsel: Report an allocation failure as ENOMEM when setting
> filters
> perf trace: Start BPF summary before starting workload
> perf trace: Skip internal tracepoint fields in formatting and beauty
> map
> perf trace: Bounds check augmented arguments before reading them
> perf trace: Bound the fixed size augmented argument beautifiers
> perf trace: Do not read sample padding as an augmented argument
> perf trace: Do not set unaugmented BPF program on sys_exit map
> perf trace: Filter events in BPF and avoid tracepoint vetoes
> perf trace: Handle fork and exit directly in BPF filter maps
> perf trace: Enumerate the target again once BPF is attached
> perf trace: Drop targets that died before they were filtered
> perf test test_task_analyzer: Isolate in temporary directory and make
> non-exclusive
> perf test common: Only disable probes in clear_all_probes
> perf test probe_vfs_getname: Scope probe name to PID and make
> non-exclusive
> perf test record+probe_libc_inet_pton: Scope event to PID, add
> retries, and make non-exclusive
> perf test trace_summary: Improve error diagnostics
> perf test trace_btf_general: Drop --max-events=1 and make
> non-exclusive
> perf test trace_summary: Make non-exclusive
> perf test uprobe_from_different_cu: Scope probe name to PID
>
> tools/perf/Documentation/perf-trace.txt | 5 +
> tools/perf/builtin-trace.c | 863 +++++++++++++++---
> tools/perf/tests/shell/common/init.sh | 33 +-
> .../perf/tests/shell/lib/probe_vfs_getname.sh | 51 +-
> tools/perf/tests/shell/probe_vfs_getname.sh | 3 +-
> .../shell/record+probe_libc_inet_pton.sh | 107 ++-
> .../shell/record+script_probe_vfs_getname.sh | 18 +-
> tools/perf/tests/shell/test_task_analyzer.sh | 20 +-
> .../shell/test_uprobe_from_different_cu.sh | 11 +-
> .../tests/shell/trace+probe_vfs_getname.sh | 9 +
> tools/perf/tests/shell/trace_btf_general.sh | 8 +-
> tools/perf/tests/shell/trace_summary.sh | 16 +-
> tools/perf/trace/beauty/beauty.h | 43 +
> tools/perf/trace/beauty/perf_event_open.c | 38 +-
> tools/perf/trace/beauty/sockaddr.c | 55 +-
> tools/perf/trace/beauty/timespec.c | 2 +-
> .../bpf_skel/augmented_raw_syscalls.bpf.c | 407 ++++++++-
> tools/perf/util/bpf_trace_augment.c | 288 +++++-
> tools/perf/util/evlist.c | 12 +-
> tools/perf/util/evsel.c | 4 +-
> tools/perf/util/trace_augment.h | 33 +-
> 21 files changed, 1801 insertions(+), 225 deletions(-)
>
>
> base-commit: 9db4e9d6cc7c7d318fb6d6bb73abe3fed27385a8
> --
> 2.56.0.rc1.315.gc6ed9934b7-goog
>
next prev parent reply other threads:[~2026-09-24 7:05 UTC|newest]
Thread overview: 268+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-17 6:42 [PATCH v1 00/13] perf trace: Fix BPF filtering and make tracing tests non-exclusive Ian Rogers
2026-09-17 6:42 ` [PATCH v1 01/13] perf trace: Start BPF summary before starting workload Ian Rogers
2026-09-17 6:49 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 02/13] perf trace: Skip internal tracepoint fields in formatting and beauty map Ian Rogers
2026-09-17 6:52 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 03/13] perf trace: Do not set unaugmented BPF program on sys_exit map Ian Rogers
2026-09-17 6:51 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 04/13] perf trace: Filter events in BPF and avoid tracepoint vetoes Ian Rogers
2026-09-17 6:56 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 05/13] perf trace: Handle fork and exit directly in BPF filter maps Ian Rogers
2026-09-17 6:50 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 06/13] perf test test_task_analyzer: Isolate in temporary directory and make non-exclusive Ian Rogers
2026-09-17 6:49 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 07/13] perf test common: Do not globally disable tracing events in clear_all_probes Ian Rogers
2026-09-17 6:52 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 08/13] perf test probe_vfs_getname: Scope probe name to PID and make non-exclusive Ian Rogers
2026-09-17 6:48 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 09/13] perf test record+probe_libc_inet_pton: Scope event to PID, add retries, " Ian Rogers
2026-09-17 6:49 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 10/13] perf test trace_summary: Improve error diagnostics Ian Rogers
2026-09-17 6:49 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 11/13] perf test trace_btf_general: Drop --max-events=1 and make non-exclusive Ian Rogers
2026-09-17 6:52 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 12/13] perf test trace_summary: Make non-exclusive Ian Rogers
2026-09-17 6:52 ` sashiko-bot
2026-09-17 6:42 ` [PATCH v1 13/13] perf test uprobe_from_different_cu: Scope probe name to PID Ian Rogers
2026-09-17 6:52 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 00/14] perf trace: Fix BPF filtering and make tracing tests non-exclusive Ian Rogers
2026-09-17 16:38 ` [PATCH v2 01/14] perf trace: Include the headers declaring pid_t and strcmp Ian Rogers
2026-09-17 16:46 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 02/14] perf trace: Start BPF summary before starting workload Ian Rogers
2026-09-17 16:44 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 03/14] perf trace: Skip internal tracepoint fields in formatting and beauty map Ian Rogers
2026-09-17 16:50 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 04/14] perf trace: Do not set unaugmented BPF program on sys_exit map Ian Rogers
2026-09-17 16:54 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 05/14] perf trace: Filter events in BPF and avoid tracepoint vetoes Ian Rogers
2026-09-17 16:50 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 06/14] perf trace: Handle fork and exit directly in BPF filter maps Ian Rogers
2026-09-17 16:59 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 07/14] perf test test_task_analyzer: Isolate in temporary directory and make non-exclusive Ian Rogers
2026-09-17 16:47 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 08/14] perf test common: Do not globally disable tracing events in clear_all_probes Ian Rogers
2026-09-17 16:53 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 09/14] perf test probe_vfs_getname: Scope probe name to PID and make non-exclusive Ian Rogers
2026-09-17 16:52 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 10/14] perf test record+probe_libc_inet_pton: Scope event to PID, add retries, " Ian Rogers
2026-09-17 16:57 ` sashiko-bot
2026-09-17 16:38 ` [PATCH v2 11/14] perf test trace_summary: Improve error diagnostics Ian Rogers
2026-09-17 16:51 ` sashiko-bot
2026-09-17 16:39 ` [PATCH v2 12/14] perf test trace_btf_general: Drop --max-events=1 and make non-exclusive Ian Rogers
2026-09-17 16:54 ` sashiko-bot
2026-09-17 16:39 ` [PATCH v2 13/14] perf test trace_summary: Make non-exclusive Ian Rogers
2026-09-17 16:55 ` sashiko-bot
2026-09-17 16:39 ` [PATCH v2 14/14] perf test uprobe_from_different_cu: Scope probe name to PID Ian Rogers
2026-09-17 16:56 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 00/16] perf trace: Fix BPF filtering and make tracing tests non-exclusive Ian Rogers
2026-09-18 14:06 ` [PATCH v3 01/16] perf trace: Include the headers declaring pid_t, strcmp and assert Ian Rogers
2026-09-18 14:13 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 02/16] perf trace: Free the whole evsel_trace in evsel__put_and_free_priv Ian Rogers
2026-09-18 14:22 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 03/16] perf trace: Start BPF summary before starting workload Ian Rogers
2026-09-18 14:16 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 04/16] perf trace: Skip internal tracepoint fields in formatting and beauty map Ian Rogers
2026-09-18 14:28 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 05/16] perf trace: Do not set unaugmented BPF program on sys_exit map Ian Rogers
2026-09-18 14:33 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 06/16] perf trace: Filter events in BPF and avoid tracepoint vetoes Ian Rogers
2026-09-18 14:31 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 07/16] perf trace: Handle fork and exit directly in BPF filter maps Ian Rogers
2026-09-18 14:35 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 08/16] perf trace: Enumerate the target again once BPF is attached Ian Rogers
2026-09-18 14:47 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 09/16] perf test test_task_analyzer: Isolate in temporary directory and make non-exclusive Ian Rogers
2026-09-18 14:36 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 10/16] perf test common: Only disable probes in clear_all_probes Ian Rogers
2026-09-18 14:46 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 11/16] perf test probe_vfs_getname: Scope probe name to PID and make non-exclusive Ian Rogers
2026-09-18 14:41 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 12/16] perf test record+probe_libc_inet_pton: Scope event to PID, add retries, " Ian Rogers
2026-09-18 14:45 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 13/16] perf test trace_summary: Improve error diagnostics Ian Rogers
2026-09-18 14:46 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 14/16] perf test trace_btf_general: Drop --max-events=1 and make non-exclusive Ian Rogers
2026-09-18 14:51 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 15/16] perf test trace_summary: Make non-exclusive Ian Rogers
2026-09-18 14:51 ` sashiko-bot
2026-09-18 14:06 ` [PATCH v3 16/16] perf test uprobe_from_different_cu: Scope probe name to PID Ian Rogers
2026-09-18 21:19 ` [PATCH v4 00/18] perf trace: Fix BPF filtering and make tracing tests non-exclusive Ian Rogers
2026-09-18 21:19 ` [PATCH v4 01/18] perf trace: Include the headers declaring pid_t, strcmp and assert Ian Rogers
2026-09-18 21:25 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 02/18] perf trace: Free the whole evsel_trace in evsel__put_and_free_priv Ian Rogers
2026-09-18 21:28 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 03/18] perf evsel: Report an allocation failure as ENOMEM when setting filters Ian Rogers
2026-09-18 21:30 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 04/18] perf trace: Start BPF summary before starting workload Ian Rogers
2026-09-18 21:26 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 05/18] perf trace: Skip internal tracepoint fields in formatting and beauty map Ian Rogers
2026-09-18 21:28 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 06/18] perf trace: Do not set unaugmented BPF program on sys_exit map Ian Rogers
2026-09-18 21:35 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 07/18] perf trace: Filter events in BPF and avoid tracepoint vetoes Ian Rogers
2026-09-18 21:29 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 08/18] perf trace: Handle fork and exit directly in BPF filter maps Ian Rogers
2026-09-18 21:31 ` sashiko-bot
2026-09-18 22:00 ` Ian Rogers
2026-09-18 21:19 ` [PATCH v4 09/18] perf trace: Enumerate the target again once BPF is attached Ian Rogers
2026-09-18 21:32 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 10/18] perf trace: Drop targets that died before they were filtered Ian Rogers
2026-09-18 21:27 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 11/18] perf test test_task_analyzer: Isolate in temporary directory and make non-exclusive Ian Rogers
2026-09-18 21:23 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 12/18] perf test common: Only disable probes in clear_all_probes Ian Rogers
2026-09-18 21:26 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 13/18] perf test probe_vfs_getname: Scope probe name to PID and make non-exclusive Ian Rogers
2026-09-18 21:28 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 14/18] perf test record+probe_libc_inet_pton: Scope event to PID, add retries, " Ian Rogers
2026-09-18 21:30 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 15/18] perf test trace_summary: Improve error diagnostics Ian Rogers
2026-09-18 21:27 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 16/18] perf test trace_btf_general: Drop --max-events=1 and make non-exclusive Ian Rogers
2026-09-18 21:31 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 17/18] perf test trace_summary: Make non-exclusive Ian Rogers
2026-09-18 21:31 ` sashiko-bot
2026-09-18 21:19 ` [PATCH v4 18/18] perf test uprobe_from_different_cu: Scope probe name to PID Ian Rogers
2026-09-18 21:30 ` sashiko-bot
2026-09-22 13:11 ` [PATCH v4 00/18] perf trace: Fix BPF filtering and make tracing tests non-exclusive Arnaldo Carvalho de Melo
2026-09-22 22:43 ` Ian Rogers
2026-09-23 7:13 ` [PATCH v5 00/23] " Ian Rogers
2026-09-23 7:13 ` [PATCH v5 01/23] perf trace: Set the augmented arg header in the augmenters that omit it Ian Rogers
2026-09-23 7:25 ` sashiko-bot
2026-09-24 5:39 ` Namhyung Kim
2026-09-23 7:13 ` [PATCH v5 02/23] perf trace: Include the augmented arg header in nanosleep's payload length Ian Rogers
2026-09-23 7:25 ` sashiko-bot
2026-09-23 16:10 ` Ian Rogers
2026-09-23 7:13 ` [PATCH v5 03/23] perf trace: Include the headers declaring pid_t, strcmp and assert Ian Rogers
2026-09-23 7:20 ` sashiko-bot
2026-09-24 5:44 ` Namhyung Kim
2026-09-23 7:13 ` [PATCH v5 04/23] perf trace: Free the whole evsel_trace in evsel__put_and_free_priv Ian Rogers
2026-09-23 7:29 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 05/23] perf evsel: Report an allocation failure as ENOMEM when setting filters Ian Rogers
2026-09-23 7:23 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 06/23] perf trace: Start BPF summary before starting workload Ian Rogers
2026-09-23 7:21 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 07/23] perf trace: Skip internal tracepoint fields in formatting and beauty map Ian Rogers
2026-09-23 7:26 ` sashiko-bot
2026-09-24 6:44 ` Namhyung Kim
2026-09-23 7:13 ` [PATCH v5 08/23] perf trace: Bounds check augmented arguments before reading them Ian Rogers
2026-09-23 7:26 ` sashiko-bot
2026-09-24 6:58 ` Namhyung Kim
2026-09-23 7:13 ` [PATCH v5 09/23] perf trace: Bound the fixed size augmented argument beautifiers Ian Rogers
2026-09-23 7:22 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 10/23] perf trace: Do not read sample padding as an augmented argument Ian Rogers
2026-09-23 7:21 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 11/23] perf trace: Do not set unaugmented BPF program on sys_exit map Ian Rogers
2026-09-23 7:22 ` sashiko-bot
2026-09-24 22:49 ` Namhyung Kim
2026-09-23 7:13 ` [PATCH v5 12/23] perf trace: Filter events in BPF and avoid tracepoint vetoes Ian Rogers
2026-09-23 7:27 ` sashiko-bot
2026-09-25 2:59 ` Namhyung Kim
2026-09-25 4:10 ` Ian Rogers
2026-09-23 7:13 ` [PATCH v5 13/23] perf trace: Handle fork and exit directly in BPF filter maps Ian Rogers
2026-09-23 7:22 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 14/23] perf trace: Enumerate the target again once BPF is attached Ian Rogers
2026-09-23 7:29 ` sashiko-bot
2026-09-23 16:07 ` Ian Rogers
2026-09-23 7:13 ` [PATCH v5 15/23] perf trace: Drop targets that died before they were filtered Ian Rogers
2026-09-23 7:27 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 16/23] perf test test_task_analyzer: Isolate in temporary directory and make non-exclusive Ian Rogers
2026-09-23 7:24 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 17/23] perf test common: Only disable probes in clear_all_probes Ian Rogers
2026-09-23 7:27 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 18/23] perf test probe_vfs_getname: Scope probe name to PID and make non-exclusive Ian Rogers
2026-09-23 7:28 ` sashiko-bot
2026-09-23 7:13 ` [PATCH v5 19/23] perf test record+probe_libc_inet_pton: Scope event to PID, add retries, " Ian Rogers
2026-09-23 7:28 ` sashiko-bot
2026-09-23 7:14 ` [PATCH v5 20/23] perf test trace_summary: Improve error diagnostics Ian Rogers
2026-09-23 7:23 ` sashiko-bot
2026-09-23 7:14 ` [PATCH v5 21/23] perf test trace_btf_general: Drop --max-events=1 and make non-exclusive Ian Rogers
2026-09-23 7:29 ` sashiko-bot
2026-09-23 7:14 ` [PATCH v5 22/23] perf test trace_summary: Make non-exclusive Ian Rogers
2026-09-23 7:35 ` sashiko-bot
2026-09-23 7:14 ` [PATCH v5 23/23] perf test uprobe_from_different_cu: Scope probe name to PID Ian Rogers
2026-09-23 7:26 ` sashiko-bot
2026-09-24 7:05 ` Namhyung Kim [this message]
2026-09-28 18:25 ` [PATCH v6 00/26] perf trace: Fix BPF filtering and make tracing tests non-exclusive Ian Rogers
2026-09-28 18:25 ` [PATCH v6 01/26] perf trace: Set the augmented arg header in the augmenters that omit it Ian Rogers
2026-09-28 18:41 ` sashiko-bot
2026-09-30 3:50 ` Namhyung Kim
2026-09-28 18:25 ` [PATCH v6 02/26] perf trace: Include the augmented arg header in nanosleep's payload length Ian Rogers
2026-09-28 18:38 ` sashiko-bot
2026-09-30 4:02 ` Namhyung Kim
2026-09-28 18:25 ` [PATCH v6 03/26] perf trace: Don't read sample padding as an augmented argument Ian Rogers
2026-09-28 18:36 ` sashiko-bot
2026-09-30 4:14 ` Namhyung Kim
2026-09-28 18:25 ` [PATCH v6 04/26] perf trace: Bounds check augmented arguments before reading them Ian Rogers
2026-09-28 18:37 ` sashiko-bot
2026-09-30 4:15 ` Namhyung Kim
2026-09-30 18:20 ` Aaron Tomlin
2026-09-30 18:34 ` Arnaldo Carvalho de Melo
2026-09-28 18:25 ` [PATCH v6 05/26] perf trace: Bound the fixed size augmented argument beautifiers Ian Rogers
2026-09-28 18:34 ` sashiko-bot
2026-09-30 18:22 ` Aaron Tomlin
2026-09-30 18:37 ` Arnaldo Carvalho de Melo
2026-09-28 18:25 ` [PATCH v6 06/26] perf trace: Copy sockaddr arguments by their length Ian Rogers
2026-09-28 18:38 ` sashiko-bot
2026-09-30 19:14 ` Arnaldo Carvalho de Melo
2026-09-30 23:08 ` Namhyung Kim
2026-10-01 6:01 ` Ian Rogers
2026-10-01 15:32 ` Arnaldo Carvalho de Melo
2026-10-01 9:07 ` Arnaldo Carvalho de Melo
2026-10-01 17:17 ` Ian Rogers
2026-10-01 18:34 ` Arnaldo Carvalho de Melo
2026-10-02 6:54 ` [PATCH 1/2] perf trace: Only call bpf_get_current_pid_tgid() when filtering tasks Ian Rogers
2026-10-02 6:54 ` [PATCH 2/2] perf trace: Increase TRACE_AUG_MAX_BUF to 128 and document beauty_map encoding Ian Rogers
2026-10-02 9:14 ` sashiko-bot
2026-10-02 16:17 ` Arnaldo Carvalho de Melo
2026-10-02 20:04 ` Aaron Tomlin
2026-10-02 9:14 ` [PATCH 1/2] perf trace: Only call bpf_get_current_pid_tgid() when filtering tasks sashiko-bot
2026-10-02 16:17 ` Arnaldo Carvalho de Melo
2026-10-02 20:03 ` Aaron Tomlin
2026-09-28 18:25 ` [PATCH v6 07/26] perf trace: Start BPF summary before starting workload Ian Rogers
2026-09-28 18:35 ` sashiko-bot
2026-09-30 19:32 ` Aaron Tomlin
2026-09-28 18:25 ` [PATCH v6 08/26] perf trace: Stop at internal fields when walking syscall arguments Ian Rogers
2026-09-28 18:36 ` sashiko-bot
2026-09-28 18:25 ` [PATCH v6 09/26] perf trace: Don't allocate syscall arg formats for internal fields Ian Rogers
2026-09-28 18:37 ` sashiko-bot
2026-09-28 18:25 ` [PATCH v6 10/26] perf trace: Only take augmented arguments from the BPF output event Ian Rogers
2026-09-28 18:33 ` sashiko-bot
2026-09-28 18:25 ` [PATCH v6 11/26] perf trace: Split unaugmented sys_exit program Ian Rogers
2026-09-28 18:35 ` sashiko-bot
2026-09-28 18:25 ` [PATCH v6 12/26] perf trace: Use the CPU map index for the BPF output event's fds Ian Rogers
2026-09-28 18:37 ` sashiko-bot
2026-09-28 18:25 ` [PATCH v6 13/26] perf trace: Destroy the BPF skeleton if it fails to load Ian Rogers
2026-09-28 18:37 ` sashiko-bot
2026-09-28 18:25 ` [PATCH v6 14/26] perf thread_map: Add thread_map__tgid() Ian Rogers
2026-09-28 18:33 ` sashiko-bot
2026-09-28 18:25 ` [PATCH v6 15/26] perf trace: Filter the target's tasks in BPF Ian Rogers
2026-09-28 18:39 ` sashiko-bot
2026-10-01 15:43 ` Arnaldo Carvalho de Melo
2026-10-01 16:36 ` Ian Rogers
2026-09-28 18:25 ` [PATCH v6 16/26] perf trace: Open the BPF output event on every CPU for task targets Ian Rogers
2026-09-28 18:36 ` sashiko-bot
2026-09-28 18:25 ` [PATCH v6 17/26] perf trace: Do not return 0 from syscall tracepoint BPF Ian Rogers
2026-09-28 18:46 ` sashiko-bot
2026-09-28 19:26 ` Ian Rogers
2026-09-28 18:25 ` [PATCH v6 18/26] perf trace: Remove unused code Ian Rogers
2026-09-28 18:37 ` sashiko-bot
2026-09-30 19:34 ` Aaron Tomlin
2026-09-28 18:25 ` [PATCH v6 19/26] perf trace: Add an option to disable syscall augmentation Ian Rogers
2026-09-28 18:37 ` sashiko-bot
2026-09-28 18:25 ` [PATCH v6 20/26] perf test common: Only disable probes in clear_all_probes Ian Rogers
2026-09-28 18:37 ` sashiko-bot
2026-09-28 18:26 ` [PATCH v6 21/26] perf test probe_vfs_getname: Scope probe name to PID and make non-exclusive Ian Rogers
2026-09-28 18:39 ` sashiko-bot
2026-09-28 18:26 ` [PATCH v6 22/26] perf test record+probe_libc_inet_pton: Scope event " Ian Rogers
2026-09-28 18:41 ` sashiko-bot
2026-09-28 18:26 ` [PATCH v6 23/26] perf test trace_summary: Improve error diagnostics Ian Rogers
2026-09-28 18:35 ` sashiko-bot
2026-09-28 18:26 ` [PATCH v6 24/26] perf test trace_btf_general: Drop --max-events=1 and make non-exclusive Ian Rogers
2026-09-28 18:39 ` sashiko-bot
2026-09-28 18:26 ` [PATCH v6 25/26] perf test: Remove exclusive tag from perf trace tests Ian Rogers
2026-09-28 18:40 ` sashiko-bot
2026-09-28 18:26 ` [PATCH v6 26/26] perf test uprobe_from_different_cu: Scope probe name to PID Ian Rogers
2026-09-28 18:38 ` sashiko-bot
2026-09-30 17:32 ` [PATCH v6 00/26] perf trace: Fix BPF filtering and make tracing tests non-exclusive Arnaldo Carvalho de Melo
2026-10-01 6:47 ` 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=arTLxu9SXPVf1V7S@z2 \
--to=namhyung@kernel.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=howardchu95@gmail.com \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@redhat.com \
--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.