]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
perf bpf_counter: Move header declarations into C code
authorIan Rogers <irogers@google.com>
Wed, 1 Oct 2025 18:12:27 +0000 (11:12 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 1 Oct 2025 18:27:02 +0000 (15:27 -0300)
Reduce the API surface that is in bpf_counter.h, this helps compiler
analysis like unused static function, makes it easier to set a
breakpoint and just makes it easier to see the code is self contained.

When code is shared between BPF C code, put it inside HAVE_BPF_SKEL.
Move transitively found #includes into appropriate C files.

No functional change.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: Gabriele Monaco <gmonaco@redhat.com>
Cc: Howard Chu <howardchu95@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@linaro.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: Tengda Wu <wutengda@huaweicloud.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/bpf_counter.c
tools/perf/util/bpf_counter.h
tools/perf/util/bpf_counter_cgroup.c
tools/perf/util/bpf_ftrace.c
tools/perf/util/bpf_off_cpu.c

index 73fcafbffc6a6618c1e983d5eb9636c3b369637b..1c6cb5ea077e640003754c697478782de3fa0bc0 100644 (file)
@@ -6,10 +6,14 @@
 #include <limits.h>
 #include <unistd.h>
 #include <sys/file.h>
+#include <sys/resource.h>
 #include <sys/time.h>
 #include <linux/err.h>
+#include <linux/list.h>
 #include <linux/zalloc.h>
 #include <api/fs/fs.h>
+#include <bpf/bpf.h>
+#include <bpf/btf.h>
 #include <perf/bpf_perf.h>
 
 #include "bpf_counter.h"
 #include "bpf_skel/bperf_leader.skel.h"
 #include "bpf_skel/bperf_follower.skel.h"
 
+struct bpf_counter {
+       void *skel;
+       struct list_head list;
+};
+
 #define ATTR_MAP_SIZE 16
 
-static inline void *u64_to_ptr(__u64 ptr)
+static void *u64_to_ptr(__u64 ptr)
 {
        return (void *)(unsigned long)ptr;
 }
 
+
+void set_max_rlimit(void)
+{
+       struct rlimit rinf = { RLIM_INFINITY, RLIM_INFINITY };
+
+       setrlimit(RLIMIT_MEMLOCK, &rinf);
+}
+
+static __u32 bpf_link_get_id(int fd)
+{
+       struct bpf_link_info link_info = { .id = 0, };
+       __u32 link_info_len = sizeof(link_info);
+
+       bpf_obj_get_info_by_fd(fd, &link_info, &link_info_len);
+       return link_info.id;
+}
+
+static __u32 bpf_link_get_prog_id(int fd)
+{
+       struct bpf_link_info link_info = { .id = 0, };
+       __u32 link_info_len = sizeof(link_info);
+
+       bpf_obj_get_info_by_fd(fd, &link_info, &link_info_len);
+       return link_info.prog_id;
+}
+
+static __u32 bpf_map_get_id(int fd)
+{
+       struct bpf_map_info map_info = { .id = 0, };
+       __u32 map_info_len = sizeof(map_info);
+
+       bpf_obj_get_info_by_fd(fd, &map_info, &map_info_len);
+       return map_info.id;
+}
+
+/* trigger the leader program on a cpu */
+int bperf_trigger_reading(int prog_fd, int cpu)
+{
+       DECLARE_LIBBPF_OPTS(bpf_test_run_opts, opts,
+                           .ctx_in = NULL,
+                           .ctx_size_in = 0,
+                           .flags = BPF_F_TEST_RUN_ON_CPU,
+                           .cpu = cpu,
+                           .retval = 0,
+               );
+
+       return bpf_prog_test_run_opts(prog_fd, &opts);
+}
+
 static struct bpf_counter *bpf_counter_alloc(void)
 {
        struct bpf_counter *counter;
@@ -785,7 +843,7 @@ struct bpf_counter_ops bperf_ops = {
 
 extern struct bpf_counter_ops bperf_cgrp_ops;
 
-static inline bool bpf_counter_skip(struct evsel *evsel)
+static bool bpf_counter_skip(struct evsel *evsel)
 {
        return evsel->bpf_counter_ops == NULL;
 }
index c6d21c07b14cd88c5e3c20c1292677e2eb868c8a..658d8e7d507ec1fc03fd7bf00b90f02654c071c7 100644 (file)
@@ -2,18 +2,10 @@
 #ifndef __PERF_BPF_COUNTER_H
 #define __PERF_BPF_COUNTER_H 1
 
-#include <linux/list.h>
-#include <sys/resource.h>
-
-#ifdef HAVE_LIBBPF_SUPPORT
-#include <bpf/bpf.h>
-#include <bpf/btf.h>
-#include <bpf/libbpf.h>
-#endif
-
 struct evsel;
 struct target;
-struct bpf_counter;
+
+#ifdef HAVE_BPF_SKEL
 
 typedef int (*bpf_counter_evsel_op)(struct evsel *evsel);
 typedef int (*bpf_counter_evsel_target_op)(struct evsel *evsel,
@@ -22,6 +14,7 @@ typedef int (*bpf_counter_evsel_install_pe_op)(struct evsel *evsel,
                                               int cpu_map_idx,
                                               int fd);
 
+/* Shared ops between bpf_counter, bpf_counter_cgroup, etc. */
 struct bpf_counter_ops {
        bpf_counter_evsel_target_op load;
        bpf_counter_evsel_op enable;
@@ -31,13 +24,6 @@ struct bpf_counter_ops {
        bpf_counter_evsel_install_pe_op install_pe;
 };
 
-struct bpf_counter {
-       void *skel;
-       struct list_head list;
-};
-
-#ifdef HAVE_BPF_SKEL
-
 int bpf_counter__load(struct evsel *evsel, struct target *target);
 int bpf_counter__enable(struct evsel *evsel);
 int bpf_counter__disable(struct evsel *evsel);
@@ -45,6 +31,9 @@ int bpf_counter__read(struct evsel *evsel);
 void bpf_counter__destroy(struct evsel *evsel);
 int bpf_counter__install_pe(struct evsel *evsel, int cpu_map_idx, int fd);
 
+int bperf_trigger_reading(int prog_fd, int cpu);
+void set_max_rlimit(void);
+
 #else /* HAVE_BPF_SKEL */
 
 #include <linux/err.h>
@@ -83,55 +72,4 @@ static inline int bpf_counter__install_pe(struct evsel *evsel __maybe_unused,
 
 #endif /* HAVE_BPF_SKEL */
 
-static inline void set_max_rlimit(void)
-{
-       struct rlimit rinf = { RLIM_INFINITY, RLIM_INFINITY };
-
-       setrlimit(RLIMIT_MEMLOCK, &rinf);
-}
-
-#ifdef HAVE_BPF_SKEL
-
-static inline __u32 bpf_link_get_id(int fd)
-{
-       struct bpf_link_info link_info = { .id = 0, };
-       __u32 link_info_len = sizeof(link_info);
-
-       bpf_obj_get_info_by_fd(fd, &link_info, &link_info_len);
-       return link_info.id;
-}
-
-static inline __u32 bpf_link_get_prog_id(int fd)
-{
-       struct bpf_link_info link_info = { .id = 0, };
-       __u32 link_info_len = sizeof(link_info);
-
-       bpf_obj_get_info_by_fd(fd, &link_info, &link_info_len);
-       return link_info.prog_id;
-}
-
-static inline __u32 bpf_map_get_id(int fd)
-{
-       struct bpf_map_info map_info = { .id = 0, };
-       __u32 map_info_len = sizeof(map_info);
-
-       bpf_obj_get_info_by_fd(fd, &map_info, &map_info_len);
-       return map_info.id;
-}
-
-/* trigger the leader program on a cpu */
-static inline int bperf_trigger_reading(int prog_fd, int cpu)
-{
-       DECLARE_LIBBPF_OPTS(bpf_test_run_opts, opts,
-                           .ctx_in = NULL,
-                           .ctx_size_in = 0,
-                           .flags = BPF_F_TEST_RUN_ON_CPU,
-                           .cpu = cpu,
-                           .retval = 0,
-               );
-
-       return bpf_prog_test_run_opts(prog_fd, &opts);
-}
-#endif /* HAVE_BPF_SKEL */
-
 #endif /* __PERF_BPF_COUNTER_H */
index 6ff42619de12bddf5a4bb812006c3fd8e87e15c0..ed6a29b106b4e98c7c49a1ffa22dd5009045ff31 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/zalloc.h>
 #include <linux/perf_event.h>
 #include <api/fs/fs.h>
+#include <bpf/bpf.h>
 #include <perf/bpf_perf.h>
 
 #include "affinity.h"
index 0cb02412043c9196fc226a805aec4956fa8eb0e0..e61a3b20be0a0bb18ccac29e4ff7152c082236ed 100644 (file)
@@ -3,6 +3,7 @@
 #include <stdint.h>
 #include <stdlib.h>
 
+#include <bpf/bpf.h>
 #include <linux/err.h>
 
 #include "util/ftrace.h"
index c367fefe6ecbb5807f34598b02f5426723040f4c..88e0660c4bff4cde3428a3b1dae2c0539ac700d0 100644 (file)
@@ -13,6 +13,7 @@
 #include "util/cgroup.h"
 #include "util/strlist.h"
 #include <bpf/bpf.h>
+#include <bpf/btf.h>
 #include <internal/xyarray.h>
 #include <linux/time64.h>