From: Alan Maguire <alan.maguire@oracle.com>
To: "Alexis Lothoré (eBPF Foundation)" <alexis.lothore@bootlin.com>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Andrii Nakryiko" <andrii@kernel.org>,
"Martin KaFai Lau" <martin.lau@linux.dev>,
"Eduard Zingerman" <eddyz87@gmail.com>,
"Song Liu" <song@kernel.org>,
"Yonghong Song" <yonghong.song@linux.dev>,
"John Fastabend" <john.fastabend@gmail.com>,
"KP Singh" <kpsingh@kernel.org>,
"Stanislav Fomichev" <sdf@fomichev.me>,
"Hao Luo" <haoluo@google.com>, "Jiri Olsa" <jolsa@kernel.org>,
"Mykola Lysenko" <mykolal@fb.com>,
"Shuah Khan" <shuah@kernel.org>
Cc: ebpf@linuxfoundation.org,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
linux-kselftest@vger.kernel.org
Subject: Re: [PATCH bpf-next 3/4] selftests/bpf: add proper section name to bpf prog and rename it
Date: Thu, 1 Aug 2024 09:35:37 +0100 [thread overview]
Message-ID: <e8b88d27-4e85-46f1-8ed4-df883abc8a51@oracle.com> (raw)
In-Reply-To: <20240731-convert_cgroup_tests-v1-3-14cbc51b6947@bootlin.com>
On 31/07/2024 11:38, Alexis Lothoré (eBPF Foundation) wrote:
> test_skb_cgroup_id_kern.c is currently involved in a manual test. In its
> current form, it can not be used with the auto-generated skeleton APIs,
> because the section name is not valid to allow libbpf to deduce the program
> type.
>
> Update section name to allow skeleton APIs usage. Also rename the program
> name to make it shorter and more straighforward regarding the API it is
> testing. While doing so, make sure that test_skb_cgroup_id.sh passes to get
> a working reference before converting it to test_progs
> - update the obj name
> - fix loading issue (verifier rejecting the program when loaded through tc,
> because of map not found), by preloading the whole obj with bpftool
>
> Signed-off-by: Alexis Lothoré (eBPF Foundation) <alexis.lothore@bootlin.com>
Reviewed-by: Alan Maguire <alan.maguire@oracle.com>
> ---
> .../progs/{test_skb_cgroup_id_kern.c => cgroup_ancestor.c} | 2 +-
> tools/testing/selftests/bpf/test_skb_cgroup_id.sh | 12 ++++++++----
> 2 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c b/tools/testing/selftests/bpf/progs/cgroup_ancestor.c
> similarity index 97%
> rename from tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c
> rename to tools/testing/selftests/bpf/progs/cgroup_ancestor.c
> index 37aacc66cd68..4879645f5827 100644
> --- a/tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c
> +++ b/tools/testing/selftests/bpf/progs/cgroup_ancestor.c
> @@ -28,7 +28,7 @@ static __always_inline void log_nth_level(struct __sk_buff *skb, __u32 level)
> bpf_map_update_elem(&cgroup_ids, &level, &id, 0);
> }
>
> -SEC("cgroup_id_logger")
> +SEC("tc")
> int log_cgroup_id(struct __sk_buff *skb)
> {
> /* Loop unroll can't be used here due to [1]. Unrolling manually.
> diff --git a/tools/testing/selftests/bpf/test_skb_cgroup_id.sh b/tools/testing/selftests/bpf/test_skb_cgroup_id.sh
> index 515c2eafc97f..d7dad49175c2 100755
> --- a/tools/testing/selftests/bpf/test_skb_cgroup_id.sh
> +++ b/tools/testing/selftests/bpf/test_skb_cgroup_id.sh
> @@ -30,8 +30,10 @@ setup()
> wait_for_ip
>
> tc qdisc add dev ${TEST_IF} clsact
> - tc filter add dev ${TEST_IF} egress bpf obj ${BPF_PROG_OBJ} \
> - sec ${BPF_PROG_SECTION} da
> + mkdir -p /sys/fs/bpf/${BPF_PROG_PIN}
> + bpftool prog loadall ${BPF_PROG_OBJ} /sys/fs/bpf/${BPF_PROG_PIN} type tc
> + tc filter add dev ${TEST_IF} egress bpf da object-pinned \
> + /sys/fs/bpf/${BPF_PROG_PIN}/${BPF_PROG_NAME}
>
Just out of curiosity; did you find that the pin is needed? I would have
thought tc attach would be enough to keep the program aroud.
> BPF_PROG_ID=$(tc filter show dev ${TEST_IF} egress | \
> awk '/ id / {sub(/.* id /, "", $0); print($1)}')
> @@ -41,6 +43,7 @@ cleanup()
> {
> ip link del ${TEST_IF} 2>/dev/null || :
> ip link del ${TEST_IF_PEER} 2>/dev/null || :
> + rm -rf /sys/fs/bpf/${BPF_PROG_PIN}
> }
>
> main()
> @@ -54,8 +57,9 @@ DIR=$(dirname $0)
> TEST_IF="test_cgid_1"
> TEST_IF_PEER="test_cgid_2"
> MAX_PING_TRIES=5
> -BPF_PROG_OBJ="${DIR}/test_skb_cgroup_id_kern.bpf.o"
> -BPF_PROG_SECTION="cgroup_id_logger"
> +BPF_PROG_PIN="cgroup_ancestor"
> +BPF_PROG_OBJ="${DIR}/${BPF_PROG_PIN}.bpf.o"
> +BPF_PROG_NAME="log_cgroup_id"
> BPF_PROG_ID=0
> PROG="${DIR}/test_skb_cgroup_id_user"
> type ping6 >/dev/null 2>&1 && PING6="ping6" || PING6="ping -6"
>
next prev parent reply other threads:[~2024-08-01 8:36 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-31 10:38 [PATCH bpf-next 0/4] selftests/bpf: convert three other cgroup tests to test_progs Alexis Lothoré (eBPF Foundation)
2024-07-31 10:38 ` [PATCH bpf-next 1/4] selftests/bpf: convert get_current_cgroup_id_user " Alexis Lothoré (eBPF Foundation)
2024-07-31 17:23 ` Alan Maguire
2024-07-31 18:53 ` Alexis Lothoré
2024-08-01 8:17 ` Alan Maguire
2024-08-01 8:57 ` Alexis Lothoré
2024-07-31 10:38 ` [PATCH bpf-next 2/4] selftests/bpf: convert test_cgroup_storage " Alexis Lothoré (eBPF Foundation)
2024-08-01 8:27 ` Alan Maguire
2024-08-01 9:21 ` Alexis Lothoré
2024-08-06 12:38 ` Alan Maguire
2024-07-31 10:38 ` [PATCH bpf-next 3/4] selftests/bpf: add proper section name to bpf prog and rename it Alexis Lothoré (eBPF Foundation)
2024-08-01 8:35 ` Alan Maguire [this message]
2024-08-01 10:00 ` Alexis Lothoré
2024-08-06 12:33 ` Alan Maguire
2024-08-06 17:24 ` Alexis Lothoré
2024-07-31 10:38 ` [PATCH bpf-next 4/4] selftests/bpf: convert test_skb_cgroup_id_user to test_progs Alexis Lothoré (eBPF Foundation)
2024-08-01 8:49 ` Alan Maguire
2024-08-01 10:12 ` Alexis Lothoré
2024-08-06 12:26 ` Alan Maguire
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e8b88d27-4e85-46f1-8ed4-df883abc8a51@oracle.com \
--to=alan.maguire@oracle.com \
--cc=alexis.lothore@bootlin.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=ebpf@linuxfoundation.org \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=mykolal@fb.com \
--cc=sdf@fomichev.me \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox