selftests/bpf: get trusted cgrp from bpf_iter__cgroup directly
authorChuyi Zhou <zhouchuyi@bytedance.com>
Tue, 7 Nov 2023 13:22:04 +0000 (21:22 +0800)
committerMartin KaFai Lau <martin.lau@kernel.org>
Tue, 7 Nov 2023 23:28:06 +0000 (15:28 -0800)
Commit f49843afde (selftests/bpf: Add tests for css_task iter combining
with cgroup iter) added a test which demonstrates how css_task iter can be
combined with cgroup iter. That test used bpf_cgroup_from_id() to convert
bpf_iter__cgroup->cgroup to a trusted ptr which is pointless now, since
with the previous fix, we can get a trusted cgroup directly from
bpf_iter__cgroup.

Signed-off-by: Chuyi Zhou <zhouchuyi@bytedance.com>
Acked-by: Yonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20231107132204.912120-3-zhouchuyi@bytedance.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
tools/testing/selftests/bpf/progs/iters_css_task.c

index e180aa1b1d52fc8375400581e7f9d7f5f3fdd234..9ac758649cb8ccd0af666a865ea314c9e7fa5819 100644 (file)
@@ -56,12 +56,9 @@ SEC("?iter/cgroup")
 int cgroup_id_printer(struct bpf_iter__cgroup *ctx)
 {
        struct seq_file *seq = ctx->meta->seq;
-       struct cgroup *cgrp, *acquired;
+       struct cgroup *cgrp = ctx->cgroup;
        struct cgroup_subsys_state *css;
        struct task_struct *task;
-       u64 cgrp_id;
-
-       cgrp = ctx->cgroup;
 
        /* epilogue */
        if (cgrp == NULL) {
@@ -73,20 +70,15 @@ int cgroup_id_printer(struct bpf_iter__cgroup *ctx)
        if (ctx->meta->seq_num == 0)
                BPF_SEQ_PRINTF(seq, "prologue\n");
 
-       cgrp_id = cgroup_id(cgrp);
-
-       BPF_SEQ_PRINTF(seq, "%8llu\n", cgrp_id);
+       BPF_SEQ_PRINTF(seq, "%8llu\n", cgroup_id(cgrp));
 
-       acquired = bpf_cgroup_from_id(cgrp_id);
-       if (!acquired)
-               return 0;
-       css = &acquired->self;
+       css = &cgrp->self;
        css_task_cnt = 0;
        bpf_for_each(css_task, task, css, CSS_TASK_ITER_PROCS) {
                if (task->pid == target_pid)
                        css_task_cnt++;
        }
-       bpf_cgroup_release(acquired);
+
        return 0;
 }