linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/10] Move uid filtering to BPF filters
@ 2025-04-25 21:39 Ian Rogers
  2025-04-25 21:39 ` [PATCH v3 01/10] perf parse-events filter: Use evsel__find_pmu Ian Rogers
                   ` (10 more replies)
  0 siblings, 11 replies; 18+ messages in thread
From: Ian Rogers @ 2025-04-25 21:39 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, Kan Liang, James Clark, Dapeng Mi,
	Thomas Richter, Veronika Molnarova, Hao Ge, Howard Chu,
	Weilin Wang, Levi Yun, Dr. David Alan Gilbert, Dominique Martinet,
	Xu Yang, Tengda Wu, linux-perf-users, linux-kernel, bpf

Rather than scanning /proc and skipping PIDs based on their UIDs, use
BPF filters for uid filtering. The /proc scanning in thread_map is
racy as the PID may exit before the perf_event_open causing perf to
abort. BPF UID filters are more robust as they avoid the race. The
/proc scanning also misses processes starting after the perf
command. Add a helper for commands that support UID filtering and wire
up. Remove the non-BPF UID filtering support given it doesn't work.

v3: Add lengthier commit messages as requested by Arnaldo. Rebase on
    tmp.perf-tools-next.

v2: Add a perf record uid test (Namhyung) and force setting
    system-wide for perf trace and perf record (Namhyung). Ensure the
    uid filter isn't set on tracepoint evsels.

v1: https://lore.kernel.org/lkml/20250111190143.1029906-1-irogers@google.com/

Ian Rogers (10):
  perf parse-events filter: Use evsel__find_pmu
  perf target: Separate parse_uid into its own function
  perf parse-events: Add parse_uid_filter helper
  perf record: Switch user option to use BPF filter
  perf tests record: Add basic uid filtering test
  perf top: Switch user option to use BPF filter
  perf trace: Switch user option to use BPF filter
  perf bench evlist-open-close: Switch user option to use BPF filter
  perf target: Remove uid from target
  perf thread_map: Remove uid options

 tools/perf/bench/evlist-open-close.c        | 36 ++++++++------
 tools/perf/builtin-ftrace.c                 |  1 -
 tools/perf/builtin-kvm.c                    |  2 -
 tools/perf/builtin-record.c                 | 27 ++++++-----
 tools/perf/builtin-stat.c                   |  4 +-
 tools/perf/builtin-top.c                    | 22 +++++----
 tools/perf/builtin-trace.c                  | 27 +++++++----
 tools/perf/tests/backward-ring-buffer.c     |  1 -
 tools/perf/tests/event-times.c              |  8 ++-
 tools/perf/tests/keep-tracking.c            |  2 +-
 tools/perf/tests/mmap-basic.c               |  2 +-
 tools/perf/tests/openat-syscall-all-cpus.c  |  2 +-
 tools/perf/tests/openat-syscall-tp-fields.c |  1 -
 tools/perf/tests/openat-syscall.c           |  2 +-
 tools/perf/tests/perf-record.c              |  1 -
 tools/perf/tests/perf-time-to-tsc.c         |  2 +-
 tools/perf/tests/shell/record.sh            | 26 ++++++++++
 tools/perf/tests/switch-tracking.c          |  2 +-
 tools/perf/tests/task-exit.c                |  1 -
 tools/perf/tests/thread-map.c               |  2 +-
 tools/perf/util/bpf-filter.c                |  2 +-
 tools/perf/util/evlist.c                    |  3 +-
 tools/perf/util/parse-events.c              | 33 ++++++++-----
 tools/perf/util/parse-events.h              |  1 +
 tools/perf/util/python.c                    | 10 ++--
 tools/perf/util/target.c                    | 54 +++------------------
 tools/perf/util/target.h                    | 15 ++----
 tools/perf/util/thread_map.c                | 32 ++----------
 tools/perf/util/thread_map.h                |  6 +--
 tools/perf/util/top.c                       |  4 +-
 tools/perf/util/top.h                       |  1 +
 31 files changed, 150 insertions(+), 182 deletions(-)

-- 
2.49.0.850.g28803427d3-goog


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2025-06-04  0:02 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-25 21:39 [PATCH v3 00/10] Move uid filtering to BPF filters Ian Rogers
2025-04-25 21:39 ` [PATCH v3 01/10] perf parse-events filter: Use evsel__find_pmu Ian Rogers
2025-04-25 21:40 ` [PATCH v3 02/10] perf target: Separate parse_uid into its own function Ian Rogers
2025-04-25 21:40 ` [PATCH v3 03/10] perf parse-events: Add parse_uid_filter helper Ian Rogers
2025-04-25 21:40 ` [PATCH v3 04/10] perf record: Switch user option to use BPF filter Ian Rogers
2025-04-25 21:40 ` [PATCH v3 05/10] perf tests record: Add basic uid filtering test Ian Rogers
2025-04-25 21:40 ` [PATCH v3 06/10] perf top: Switch user option to use BPF filter Ian Rogers
2025-04-25 21:40 ` [PATCH v3 07/10] perf trace: " Ian Rogers
2025-04-25 21:40 ` [PATCH v3 08/10] perf bench evlist-open-close: " Ian Rogers
2025-04-25 21:40 ` [PATCH v3 09/10] perf target: Remove uid from target Ian Rogers
2025-04-25 21:40 ` [PATCH v3 10/10] perf thread_map: Remove uid options Ian Rogers
2025-05-27 20:39 ` [PATCH v3 00/10] Move uid filtering to BPF filters Ian Rogers
2025-06-03  4:41   ` Namhyung Kim
2025-06-03  6:26     ` Ian Rogers
2025-06-03 22:32       ` Namhyung Kim
2025-06-03 23:22         ` Ian Rogers
2025-06-03 23:41           ` Namhyung Kim
2025-06-04  0:01             ` Ian Rogers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).