From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Puranjay Mohan <puranjay12@gmail.com>
Cc: Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>,
Martin KaFai Lau <martin.lau@linux.dev>,
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@google.com>, Hao Luo <haoluo@google.com>,
Jiri Olsa <jolsa@kernel.org>,
Shubham Bansal <illusionist.neo@gmail.com>,
Mykola Lysenko <mykolal@fb.com>, Shuah Khan <shuah@kernel.org>,
bpf@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH bpf-next v2 4/8] arm32, bpf: add support for unconditional bswap instruction
Date: Thu, 7 Sep 2023 10:15:06 +0100 [thread overview]
Message-ID: <ZPmUmqzvq1sV7r/f@shell.armlinux.org.uk> (raw)
In-Reply-To: <mb61pzg1y1hb5.fsf@amazon.com>
On Thu, Sep 07, 2023 at 09:08:46AM +0000, Puranjay Mohan wrote:
> On Thu, Sep 07 2023, Russell King (Oracle) wrote:
>
> > On Wed, Sep 06, 2023 at 06:33:16PM +0000, Puranjay Mohan wrote:
> >> @@ -1633,8 +1633,10 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
> >> /* dst = htobe(dst) */
> >> case BPF_ALU | BPF_END | BPF_FROM_LE:
> >> case BPF_ALU | BPF_END | BPF_FROM_BE:
> >> + /* dst = bswap(dst) */
> >> + case BPF_ALU64 | BPF_END | BPF_TO_LE:
> >> rd = arm_bpf_get_reg64(dst, tmp, ctx);
> >> - if (BPF_SRC(code) == BPF_FROM_LE)
> >> + if (BPF_SRC(code) == BPF_FROM_LE && BPF_CLASS(code) != BPF_ALU64)
> >
> > With the addition of the BPF_ALU64 case, I'm wondering why this if() is
> > affected. If you were adding:
> >
> > case BPF_ALU64 | BPF_END | BPF_FROM_LE:
> >
> > then maybe there would be a reason, but the BPF_ALU64 | BPF_END |
> > BPF_TO_LE case will never match even the original if() statement.
>
> The reason is that these mean the same thing.
> from: include/uapi/linux/bpf.h
>
> #define BPF_TO_LE 0x00 /* convert to little-endian */
> #define BPF_TO_BE 0x08 /* convert to big-endian */
> #define BPF_FROM_LE BPF_TO_LE
> #define BPF_FROM_BE BPF_TO_BE
>
> So, to not cause confusion and follow the earlier cases I can add:
>
> case BPF_ALU64 | BPF_END | BPF_FROM_LE:
>
> in the next version.
It might be worth adding a comment after each stating one of:
/* also BPF_TO_LE */
/* also BPF_TO_BE */
as appropriate to make this more readable.
Thanks.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2023-09-07 16:01 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-06 18:33 [PATCH bpf-next v2 0/8] arm32, bpf: add support for cpuv4 insns Puranjay Mohan
2023-09-06 18:33 ` [PATCH bpf-next v2 1/8] arm32, bpf: add support for 32-bit offset jmp instruction Puranjay Mohan
2023-09-07 8:39 ` Russell King (Oracle)
2023-09-06 18:33 ` [PATCH bpf-next v2 2/8] arm32, bpf: add support for sign-extension load instruction Puranjay Mohan
2023-09-07 8:44 ` Russell King (Oracle)
2023-09-06 18:33 ` [PATCH bpf-next v2 3/8] arm32, bpf: add support for sign-extension mov instruction Puranjay Mohan
2023-09-07 8:45 ` Russell King (Oracle)
2023-09-06 18:33 ` [PATCH bpf-next v2 4/8] arm32, bpf: add support for unconditional bswap instruction Puranjay Mohan
2023-09-07 8:48 ` Russell King (Oracle)
2023-09-07 9:08 ` Puranjay Mohan
2023-09-07 9:15 ` Russell King (Oracle) [this message]
2023-09-06 18:33 ` [PATCH bpf-next v2 5/8] arm32, bpf: add support for 32-bit signed division Puranjay Mohan
2023-09-07 8:49 ` Russell King (Oracle)
2023-09-06 18:33 ` [PATCH bpf-next v2 6/8] arm32, bpf: add support for 64 bit division instruction Puranjay Mohan
2023-09-07 8:50 ` Russell King (Oracle)
2023-09-06 18:33 ` [PATCH bpf-next v2 7/8] selftest, bpf: enable cpu v4 tests for arm32 Puranjay Mohan
2023-09-06 18:33 ` [PATCH bpf-next v2 8/8] bpf/tests: add tests for cpuv4 instructions Puranjay Mohan
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=ZPmUmqzvq1sV7r/f@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=haoluo@google.com \
--cc=illusionist.neo@gmail.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=puranjay12@gmail.com \
--cc=sdf@google.com \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--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 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.