From: Yonghong Song <yhs=40meta.com@dmarc.ietf.org> To: Yonghong Song <yhs@fb.com>, bpf@vger.kernel.org Cc: Alexei Starovoitov <ast@kernel.org>, Andrii Nakryiko <andrii@kernel.org>, bpf@ietf.org, Daniel Borkmann <daniel@iogearbox.net>, Fangrui Song <maskray@google.com>, kernel-team@fb.com Subject: Re: [Bpf] [PATCH bpf-next v3 11/17] selftests/bpf: Add unit tests for new sign-extension load insns Date: Wed, 19 Jul 2023 23:36:05 -0700 [thread overview] Message-ID: <02e666bf-82a5-9b80-0cc0-2c50b8da5126@meta.com> (raw) In-Reply-To: <6be0dc44-c781-a3e9-e2b5-f26e3ffa42e8@meta.com> On 7/19/23 11:31 PM, Yonghong Song wrote: > > > On 7/19/23 5:02 PM, Yonghong Song wrote: >> Add unit tests for new ldsx insns. The test includes sign-extension >> with a single value or with a value range. >> >> Signed-off-by: Yonghong Song <yhs@fb.com> >> --- >> .../selftests/bpf/prog_tests/verifier.c | 2 + >> .../selftests/bpf/progs/verifier_ldsx.c | 117 ++++++++++++++++++ >> 2 files changed, 119 insertions(+) >> create mode 100644 tools/testing/selftests/bpf/progs/verifier_ldsx.c >> >> diff --git a/tools/testing/selftests/bpf/prog_tests/verifier.c >> b/tools/testing/selftests/bpf/prog_tests/verifier.c >> index c375e59ff28d..6eec6a9463c8 100644 >> --- a/tools/testing/selftests/bpf/prog_tests/verifier.c >> +++ b/tools/testing/selftests/bpf/prog_tests/verifier.c >> @@ -31,6 +31,7 @@ >> #include "verifier_int_ptr.skel.h" >> #include "verifier_jeq_infer_not_null.skel.h" >> #include "verifier_ld_ind.skel.h" >> +#include "verifier_ldsx.skel.h" >> #include "verifier_leak_ptr.skel.h" >> #include "verifier_loops1.skel.h" >> #include "verifier_lwt.skel.h" >> @@ -133,6 +134,7 @@ void test_verifier_helper_value_access(void) { >> RUN(verifier_helper_value_access >> void test_verifier_int_ptr(void) { >> RUN(verifier_int_ptr); } >> void test_verifier_jeq_infer_not_null(void) { >> RUN(verifier_jeq_infer_not_null); } >> void test_verifier_ld_ind(void) { RUN(verifier_ld_ind); } >> +void test_verifier_ldsx(void) { RUN(verifier_ldsx); } >> void test_verifier_leak_ptr(void) { >> RUN(verifier_leak_ptr); } >> void test_verifier_loops1(void) { RUN(verifier_loops1); } >> void test_verifier_lwt(void) { RUN(verifier_lwt); } >> diff --git a/tools/testing/selftests/bpf/progs/verifier_ldsx.c >> b/tools/testing/selftests/bpf/progs/verifier_ldsx.c >> new file mode 100644 >> index 000000000000..4163e9ffffe9 >> --- /dev/null >> +++ b/tools/testing/selftests/bpf/progs/verifier_ldsx.c >> @@ -0,0 +1,117 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> + >> +#include <linux/bpf.h> >> +#include <bpf/bpf_helpers.h> >> +#include "bpf_misc.h" >> + >> +SEC("socket") >> +__description("LDSX, S8") >> +__success __success_unpriv __retval(-2) >> +__naked void ldsx_s8(void) >> +{ >> + asm volatile (" \ >> + r1 = 0x3fe; \ >> + *(u64 *)(r10 - 8) = r1; \ >> + r0 = *(s8 *)(r10 - 8); \ >> + exit; \ >> +" ::: __clobber_all); > > Looks like latest llvm17 is okay with the above asm syntax > but llvm16 is not okay. > > https://github.com/kernel-patches/bpf/pull/5377 > > Will check and fix the problem in the next revision. I may need to guard this and other similar tests with llvm compiler versions. > > >> +} >> + >> +SEC("socket") >> +__description("LDSX, S16") >> +__success __success_unpriv __retval(-2) >> +__naked void ldsx_s16(void) >> +{ >> + asm volatile (" \ >> + r1 = 0x3fffe; \ >> + *(u64 *)(r10 - 8) = r1; \ >> + r0 = *(s16 *)(r10 - 8); \ >> + exit; \ >> +" ::: __clobber_all); >> +} >> + > [...] -- Bpf mailing list Bpf@ietf.org https://www.ietf.org/mailman/listinfo/bpf
WARNING: multiple messages have this Message-ID (diff)
From: Yonghong Song <yhs@meta.com> To: Yonghong Song <yhs@fb.com>, bpf@vger.kernel.org Cc: Alexei Starovoitov <ast@kernel.org>, Andrii Nakryiko <andrii@kernel.org>, bpf@ietf.org, Daniel Borkmann <daniel@iogearbox.net>, Fangrui Song <maskray@google.com>, kernel-team@fb.com Subject: Re: [PATCH bpf-next v3 11/17] selftests/bpf: Add unit tests for new sign-extension load insns Date: Wed, 19 Jul 2023 23:36:05 -0700 [thread overview] Message-ID: <02e666bf-82a5-9b80-0cc0-2c50b8da5126@meta.com> (raw) Message-ID: <20230720063605.ywb79d9M10KIy7qa-I509k6RrUkOGYQB1PKut0dD3AE@z> (raw) In-Reply-To: <6be0dc44-c781-a3e9-e2b5-f26e3ffa42e8@meta.com> On 7/19/23 11:31 PM, Yonghong Song wrote: > > > On 7/19/23 5:02 PM, Yonghong Song wrote: >> Add unit tests for new ldsx insns. The test includes sign-extension >> with a single value or with a value range. >> >> Signed-off-by: Yonghong Song <yhs@fb.com> >> --- >> .../selftests/bpf/prog_tests/verifier.c | 2 + >> .../selftests/bpf/progs/verifier_ldsx.c | 117 ++++++++++++++++++ >> 2 files changed, 119 insertions(+) >> create mode 100644 tools/testing/selftests/bpf/progs/verifier_ldsx.c >> >> diff --git a/tools/testing/selftests/bpf/prog_tests/verifier.c >> b/tools/testing/selftests/bpf/prog_tests/verifier.c >> index c375e59ff28d..6eec6a9463c8 100644 >> --- a/tools/testing/selftests/bpf/prog_tests/verifier.c >> +++ b/tools/testing/selftests/bpf/prog_tests/verifier.c >> @@ -31,6 +31,7 @@ >> #include "verifier_int_ptr.skel.h" >> #include "verifier_jeq_infer_not_null.skel.h" >> #include "verifier_ld_ind.skel.h" >> +#include "verifier_ldsx.skel.h" >> #include "verifier_leak_ptr.skel.h" >> #include "verifier_loops1.skel.h" >> #include "verifier_lwt.skel.h" >> @@ -133,6 +134,7 @@ void test_verifier_helper_value_access(void) { >> RUN(verifier_helper_value_access >> void test_verifier_int_ptr(void) { >> RUN(verifier_int_ptr); } >> void test_verifier_jeq_infer_not_null(void) { >> RUN(verifier_jeq_infer_not_null); } >> void test_verifier_ld_ind(void) { RUN(verifier_ld_ind); } >> +void test_verifier_ldsx(void) { RUN(verifier_ldsx); } >> void test_verifier_leak_ptr(void) { >> RUN(verifier_leak_ptr); } >> void test_verifier_loops1(void) { RUN(verifier_loops1); } >> void test_verifier_lwt(void) { RUN(verifier_lwt); } >> diff --git a/tools/testing/selftests/bpf/progs/verifier_ldsx.c >> b/tools/testing/selftests/bpf/progs/verifier_ldsx.c >> new file mode 100644 >> index 000000000000..4163e9ffffe9 >> --- /dev/null >> +++ b/tools/testing/selftests/bpf/progs/verifier_ldsx.c >> @@ -0,0 +1,117 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> + >> +#include <linux/bpf.h> >> +#include <bpf/bpf_helpers.h> >> +#include "bpf_misc.h" >> + >> +SEC("socket") >> +__description("LDSX, S8") >> +__success __success_unpriv __retval(-2) >> +__naked void ldsx_s8(void) >> +{ >> + asm volatile (" \ >> + r1 = 0x3fe; \ >> + *(u64 *)(r10 - 8) = r1; \ >> + r0 = *(s8 *)(r10 - 8); \ >> + exit; \ >> +" ::: __clobber_all); > > Looks like latest llvm17 is okay with the above asm syntax > but llvm16 is not okay. > > https://github.com/kernel-patches/bpf/pull/5377 > > Will check and fix the problem in the next revision. I may need to guard this and other similar tests with llvm compiler versions. > > >> +} >> + >> +SEC("socket") >> +__description("LDSX, S16") >> +__success __success_unpriv __retval(-2) >> +__naked void ldsx_s16(void) >> +{ >> + asm volatile (" \ >> + r1 = 0x3fffe; \ >> + *(u64 *)(r10 - 8) = r1; \ >> + r0 = *(s16 *)(r10 - 8); \ >> + exit; \ >> +" ::: __clobber_all); >> +} >> + > [...]
next prev parent reply other threads:[~2023-07-20 6:37 UTC|newest] Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-07-20 0:01 [PATCH bpf-next v3 00/17] bpf: Support new insns from cpu v4 Yonghong Song 2023-07-20 0:01 ` [PATCH bpf-next v3 01/17] bpf: Support new sign-extension load insns Yonghong Song 2023-07-20 20:33 ` Eduard Zingerman 2023-07-24 4:03 ` [Bpf] " Yonghong Song 2023-07-24 4:03 ` Yonghong Song 2023-07-20 0:01 ` [PATCH bpf-next v3 02/17] bpf: Support new sign-extension mov insns Yonghong Song 2023-07-20 0:01 ` [PATCH bpf-next v3 03/17] bpf: Handle sign-extenstin ctx member accesses Yonghong Song 2023-07-20 0:01 ` [PATCH bpf-next v3 04/17] bpf: Support new unconditional bswap instruction Yonghong Song 2023-07-20 0:01 ` [PATCH bpf-next v3 05/17] bpf: Support new signed div/mod instructions Yonghong Song 2023-07-20 0:01 ` [Bpf] " Yonghong Song 2023-07-20 0:01 ` [PATCH bpf-next v3 06/17] bpf: Fix jit blinding with new sdiv/smov insns Yonghong Song 2023-07-20 0:01 ` [PATCH bpf-next v3 07/17] bpf: Support new 32bit offset jmp instruction Yonghong Song 2023-07-20 0:01 ` [PATCH bpf-next v3 08/17] bpf: Add kernel/bpftool asm support for new instructions Yonghong Song 2023-07-21 14:36 ` Quentin Monnet 2023-07-21 14:36 ` [Bpf] " Quentin Monnet 2023-07-20 0:01 ` [PATCH bpf-next v3 09/17] selftests/bpf: Fix a test_verifier failure Yonghong Song 2023-07-20 0:01 ` [PATCH bpf-next v3 10/17] selftests/bpf: Add a cpuv4 test runner for cpu=v4 testing Yonghong Song 2023-07-20 0:02 ` [PATCH bpf-next v3 11/17] selftests/bpf: Add unit tests for new sign-extension load insns Yonghong Song 2023-07-20 6:31 ` [Bpf] " Yonghong Song 2023-07-20 6:31 ` Yonghong Song 2023-07-20 6:36 ` Yonghong Song [this message] 2023-07-20 6:36 ` Yonghong Song 2023-07-20 0:02 ` [PATCH bpf-next v3 12/17] selftests/bpf: Add unit tests for new sign-extension mov insns Yonghong Song 2023-07-20 0:02 ` [PATCH bpf-next v3 13/17] selftests/bpf: Add unit tests for new bswap insns Yonghong Song 2023-07-20 0:02 ` [PATCH bpf-next v3 14/17] selftests/bpf: Add unit tests for new sdiv/smod insns Yonghong Song 2023-07-20 0:02 ` [PATCH bpf-next v3 15/17] selftests/bpf: Add unit tests for new gotol insn Yonghong Song 2023-07-20 0:02 ` [Bpf] " Yonghong Song 2023-07-20 0:02 ` [PATCH bpf-next v3 16/17] selftests/bpf: Test ldsx with more complex cases Yonghong Song 2023-07-20 0:02 ` [PATCH bpf-next v3 17/17] docs/bpf: Add documentation for new instructions Yonghong Song 2023-07-20 20:35 ` [PATCH bpf-next v3 00/17] bpf: Support new insns from cpu v4 Eduard Zingerman
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=02e666bf-82a5-9b80-0cc0-2c50b8da5126@meta.com \ --to=yhs=40meta.com@dmarc.ietf.org \ --cc=andrii@kernel.org \ --cc=ast@kernel.org \ --cc=bpf@ietf.org \ --cc=bpf@vger.kernel.org \ --cc=daniel@iogearbox.net \ --cc=kernel-team@fb.com \ --cc=maskray@google.com \ --cc=yhs@fb.com \ /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: linkBe 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; as well as URLs for NNTP newsgroup(s).