mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-16 06:51:42 +00:00
The BPF filter needs libbpf/BPF-skeleton support and root privilege.
Add error messages to help users understand the problem easily.
When it's not build with BPF support (make BUILD_BPF_SKEL=0).
$ sudo perf record -e cycles --filter "pid != 0" true
Error: BPF filter is requested but perf is not built with BPF.
Please make sure to build with libbpf and BPF skeleton.
Usage: perf record [<options>] [<command>]
or: perf record [<options>] -- <command> [<options>]
--filter <filter>
event filter
When it supports BPF but runs without root or CAP_BPF. Note that it
also checks pinned BPF filters.
$ perf record -e cycles --filter "pid != 0" -o /dev/null true
Error: BPF filter only works for users with the CAP_BPF capability!
Please run 'perf record --setup-filter pin' as root first.
Usage: perf record [<options>] [<command>]
or: perf record [<options>] -- <command> [<options>]
--filter <filter>
event filter
Reviewed-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20250604174835.1852481-1-namhyung@kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
25 lines
475 B
C
25 lines
475 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __PERF_CAP_H
|
|
#define __PERF_CAP_H
|
|
|
|
#include <stdbool.h>
|
|
#include <linux/capability.h>
|
|
|
|
/* For older systems */
|
|
#ifndef CAP_SYSLOG
|
|
#define CAP_SYSLOG 34
|
|
#endif
|
|
|
|
#ifndef CAP_PERFMON
|
|
#define CAP_PERFMON 38
|
|
#endif
|
|
|
|
#ifndef CAP_BPF
|
|
#define CAP_BPF 39
|
|
#endif
|
|
|
|
/* Query if a capability is supported, used_root is set if the fallback root check was used. */
|
|
bool perf_cap__capable(int cap, bool *used_root);
|
|
|
|
#endif /* __PERF_CAP_H */
|