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:31:12 -0700 [thread overview] Message-ID: <6be0dc44-c781-a3e9-e2b5-f26e3ffa42e8@meta.com> (raw) In-Reply-To: <20230720000202.109554-1-yhs@fb.com> 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. > +} > + > +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:31:12 -0700 [thread overview] Message-ID: <6be0dc44-c781-a3e9-e2b5-f26e3ffa42e8@meta.com> (raw) Message-ID: <20230720063112.VYU-edVBUyeD2sdv1lsP0SmH1HQBrBIh6zkFGrQH1qU@z> (raw) In-Reply-To: <20230720000202.109554-1-yhs@fb.com> 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. > +} > + > +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:32 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 ` Yonghong Song [this message] 2023-07-20 6:31 ` Yonghong Song 2023-07-20 6:36 ` [Bpf] " Yonghong Song 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=6be0dc44-c781-a3e9-e2b5-f26e3ffa42e8@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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.