mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +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>
24 lines
475 B
C
24 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 */
|