Thread (21 messages) 21 messages, 8 authors, 2020-11-04

Re: [PATCH v2 bpf-next 3/4] selftests/bpf: Add profiler test

flat view

From: Song Liu <hidden>
Date: 2020-10-15 06:09:40
Also in: bpf

On Oct 13, 2020, at 2:56 PM, Andrii Nakryiko [off-list ref] wrote:
[...]
I'd go with Kconfig + bpf_core_enum_value(), as it's shorter and
nicer. This compiles and works with my Kconfig, but I haven't checked
with CONFIG_CGROUP_PIDS defined.
Tested with CONFIG_CGROUP_PIDS, it looks good. 

Tested-by: Song Liu <redacted>
quoted hunk ↗ jump to hunk
diff --git a/tools/testing/selftests/bpf/progs/profiler.inc.h
b/tools/testing/selftests/bpf/progs/profiler.inc.h
index 00578311a423..79b8d2860a5c 100644
--- a/tools/testing/selftests/bpf/progs/profiler.inc.h
+++ b/tools/testing/selftests/bpf/progs/profiler.inc.h
@@ -243,7 +243,11 @@ static ino_t get_inode_from_kernfs(struct
kernfs_node* node)
       }
}

-int pids_cgrp_id = 1;
+extern bool CONFIG_CGROUP_PIDS __kconfig __weak;
+
+enum cgroup_subsys_id___local {
+       pids_cgrp_id___local = 1, /* anything but zero */
+};

static INLINE void* populate_cgroup_info(struct cgroup_data_t* cgroup_data,
                                        struct task_struct* task,
@@ -253,7 +257,9 @@ static INLINE void* populate_cgroup_info(struct
cgroup_data_t* cgroup_data,
               BPF_CORE_READ(task, nsproxy, cgroup_ns, root_cset,
dfl_cgrp, kn);
       struct kernfs_node* proc_kernfs = BPF_CORE_READ(task, cgroups,
dfl_cgrp, kn);

-       if (ENABLE_CGROUP_V1_RESOLVER) {
+       if (ENABLE_CGROUP_V1_RESOLVER && CONFIG_CGROUP_PIDS) {
+               int cgrp_id = bpf_core_enum_value(enum
cgroup_subsys_id___local, pids_cgrp_id___local);
+
#ifdef UNROLL
#pragma unroll
#endif
@@ -262,7 +268,7 @@ static INLINE void* populate_cgroup_info(struct
cgroup_data_t* cgroup_data,
                               BPF_CORE_READ(task, cgroups, subsys[i]);
                       if (subsys != NULL) {
                               int subsys_id = BPF_CORE_READ(subsys, ss, id);
-                               if (subsys_id == pids_cgrp_id) {
+                               if (subsys_id == cgrp_id) {
                                       proc_kernfs =
BPF_CORE_READ(subsys, cgroup, kn);
                                       root_kernfs =
BPF_CORE_READ(subsys, ss, root, kf_root, kn);
                                       break;
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help