linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/12] Move uid filtering to BPF filters
@ 2025-04-10 17:36 Ian Rogers
  2025-04-10 17:36 ` [PATCH v2 01/12] perf tests record: Cleanup improvements Ian Rogers
                   ` (12 more replies)
  0 siblings, 13 replies; 15+ messages in thread
From: Ian Rogers @ 2025-04-10 17:36 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. Add a
helper for commands that support UID filtering and wire up. Remove the
non-BPF UID filtering support given it doesn't work.

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 (12):
  perf tests record: Cleanup improvements
  perf bench evlist-open-close: Reduce scope of 2 variables
  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        | 76 ++++++++++++---------
 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            | 36 ++++++++--
 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, 178 insertions(+), 204 deletions(-)

-- 
2.49.0.604.gff1f9ca942-goog


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

end of thread, other threads:[~2025-04-24 21:35 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-10 17:36 [PATCH v2 00/12] Move uid filtering to BPF filters Ian Rogers
2025-04-10 17:36 ` [PATCH v2 01/12] perf tests record: Cleanup improvements Ian Rogers
2025-04-10 17:36 ` [PATCH v2 02/12] perf bench evlist-open-close: Reduce scope of 2 variables Ian Rogers
2025-04-10 17:36 ` [PATCH v2 03/12] perf parse-events filter: Use evsel__find_pmu Ian Rogers
2025-04-10 17:36 ` [PATCH v2 04/12] perf target: Separate parse_uid into its own function Ian Rogers
2025-04-10 17:36 ` [PATCH v2 05/12] perf parse-events: Add parse_uid_filter helper Ian Rogers
2025-04-10 17:36 ` [PATCH v2 06/12] perf record: Switch user option to use BPF filter Ian Rogers
2025-04-24 21:35   ` Arnaldo Carvalho de Melo
2025-04-10 17:36 ` [PATCH v2 07/12] perf tests record: Add basic uid filtering test Ian Rogers
2025-04-10 17:36 ` [PATCH v2 08/12] perf top: Switch user option to use BPF filter Ian Rogers
2025-04-10 17:36 ` [PATCH v2 09/12] perf trace: " Ian Rogers
2025-04-10 17:36 ` [PATCH v2 10/12] perf bench evlist-open-close: " Ian Rogers
2025-04-10 17:36 ` [PATCH v2 11/12] perf target: Remove uid from target Ian Rogers
2025-04-10 17:36 ` [PATCH v2 12/12] perf thread_map: Remove uid options Ian Rogers
2025-04-24 20:25 ` [PATCH v2 00/12] Move uid filtering to BPF filters 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).