From: Daniel Borkmann <dborkman@redhat.com>
To: Alexei Starovoitov <ast@plumgrid.com>
Cc: "David S. Miller" <davem@davemloft.net>,
Ingo Molnar <mingo@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andy Lutomirski <luto@amacapital.net>,
Steven Rostedt <rostedt@goodmis.org>,
Chema Gonzalez <chema@google.com>,
Eric Dumazet <edumazet@google.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
"H. Peter Anvin" <hpa@zytor.com>,
Andrew Morton <akpm@linux-foundation.org>,
Kees Cook <keescook@chromium.org>,
linux-api@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH RFC v4 net-next 01/26] net: filter: add "load 64-bit immediate" eBPF instruction
Date: Wed, 13 Aug 2014 11:17:37 +0200 [thread overview]
Message-ID: <53EB2D31.8090204@redhat.com> (raw)
In-Reply-To: <1407916658-8731-2-git-send-email-ast@plumgrid.com>
On 08/13/2014 09:57 AM, Alexei Starovoitov wrote:
> add BPF_LD_IMM64 instruction to load 64-bit immediate value into register.
> All previous instructions were 8-byte. This is first 16-byte instruction.
> Two consecutive 'struct bpf_insn' blocks are interpreted as single instruction:
> insn[0/1].code = BPF_LD | BPF_DW | BPF_IMM
> insn[0/1].dst_reg = destination register
> insn[0].imm = lower 32-bit
> insn[1].imm = upper 32-bit
>
> Classic BPF has similar instruction: BPF_LD | BPF_W | BPF_IMM
> which loads 32-bit immediate value into a register.
>
> x64 JITs it as single 'movabsq %rax, imm64'
> arm64 may JIT as sequence of four 'movk x0, #imm16, lsl #shift' insn
>
> Note that old eBPF programs are binary compatible with new interpreter.
>
> Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
For follow-ups on this series, can you put the actual motivation
for this change from the cover letter into this commit log as it
otherwise doesn't say anything clearly why it is needed. Code and
test case looks good to me.
next prev parent reply other threads:[~2014-08-13 9:18 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-13 7:57 [PATCH RFC v4 net-next 00/26] BPF syscall, maps, verifier, samples, llvm Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 01/26] net: filter: add "load 64-bit immediate" eBPF instruction Alexei Starovoitov
2014-08-13 9:17 ` Daniel Borkmann [this message]
2014-08-13 17:34 ` Alexei Starovoitov
2014-08-13 17:39 ` Daniel Borkmann
2014-08-13 16:08 ` Andy Lutomirski
2014-08-13 17:44 ` Alexei Starovoitov
2014-08-13 18:35 ` Andy Lutomirski
2014-08-13 21:02 ` Alexei Starovoitov
2014-08-13 21:16 ` H. Peter Anvin
2014-08-13 21:17 ` Andy Lutomirski
2014-08-13 21:21 ` H. Peter Anvin
2014-08-13 21:23 ` Andy Lutomirski
2014-08-13 21:27 ` H. Peter Anvin
2014-08-13 21:38 ` Alexei Starovoitov
2014-08-13 21:56 ` Alexei Starovoitov
2014-08-13 21:41 ` Andy Lutomirski
2014-08-13 21:43 ` Alexei Starovoitov
2014-08-13 21:37 ` Alexei Starovoitov
2014-08-13 21:38 ` Andy Lutomirski
2014-08-13 7:57 ` [PATCH RFC v4 net-next 02/26] net: filter: split filter.h and expose eBPF to user space Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 03/26] bpf: introduce syscall(BPF, ...) and BPF maps Alexei Starovoitov
2014-08-14 22:28 ` Brendan Gregg
2014-08-15 6:40 ` Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 04/26] bpf: enable bpf syscall on x64 Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 05/26] bpf: add lookup/update/delete/iterate methods to BPF maps Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 06/26] bpf: add hashtable type of " Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 07/26] bpf: expand BPF syscall with program load/unload Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 08/26] bpf: handle pseudo BPF_CALL insn Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 09/26] bpf: verifier (add docs) Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 10/26] bpf: verifier (add ability to receive verification log) Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 11/26] bpf: handle pseudo BPF_LD_IMM64 insn Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 12/26] bpf: verifier (add branch/goto checks) Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 13/26] bpf: verifier (add verifier core) Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 14/26] bpf: verifier (add state prunning optimization) Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 15/26] bpf: allow eBPF programs to use maps Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 16/26] net: sock: allow eBPF programs to be attached to sockets Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 17/26] tracing: allow eBPF programs to be attached to events Alexei Starovoitov
2014-08-14 21:20 ` Brendan Gregg
2014-08-15 6:08 ` Alexei Starovoitov
2014-08-15 17:20 ` Andy Lutomirski
2014-08-15 17:36 ` Alexei Starovoitov
2014-08-15 18:50 ` Andy Lutomirski
2014-08-15 18:56 ` Alexei Starovoitov
2014-08-15 19:02 ` Andy Lutomirski
2014-08-15 19:16 ` Alexei Starovoitov
2014-08-15 19:18 ` Andy Lutomirski
2014-08-15 19:35 ` Alexei Starovoitov
2014-08-19 18:39 ` Alexei Starovoitov
2014-08-15 17:25 ` Andy Lutomirski
2014-08-15 17:51 ` Alexei Starovoitov
2014-08-15 18:53 ` Andy Lutomirski
2014-08-15 19:07 ` Alexei Starovoitov
2014-08-15 19:20 ` Andy Lutomirski
2014-08-15 19:29 ` Alexei Starovoitov
2014-08-15 19:32 ` Andy Lutomirski
2014-08-13 7:57 ` [PATCH RFC v4 net-next 18/26] tracing: allow eBPF programs to be attached to kprobe/kretprobe Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 19/26] samples: bpf: add mini eBPF library to manipulate maps and programs Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 20/26] samples: bpf: example of stateful socket filtering Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 21/26] samples: bpf: example of tracing filters with eBPF Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 22/26] bpf: llvm backend Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 23/26] samples: bpf: elf file loader Alexei Starovoitov
2014-08-14 19:29 ` Brendan Gregg
2014-08-15 5:56 ` Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 24/26] samples: bpf: eBPF example in C Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 25/26] samples: bpf: counting " Alexei Starovoitov
2014-08-14 22:13 ` Brendan Gregg
2014-08-15 6:19 ` Alexei Starovoitov
2014-08-13 7:57 ` [PATCH RFC v4 net-next 26/26] bpf: verifier test Alexei Starovoitov
2014-08-13 8:52 ` [PATCH RFC v4 net-next 00/26] BPF syscall, maps, verifier, samples, llvm David Laight
2014-08-13 17:30 ` Alexei Starovoitov
2014-08-13 17:40 ` Andy Lutomirski
2014-08-13 18:00 ` Alexei Starovoitov
2014-08-13 23:25 ` David Miller
2014-08-13 23:34 ` Andy Lutomirski
2014-08-13 23:46 ` Alexei Starovoitov
2014-08-13 23:53 ` Andy Lutomirski
2014-08-14 19:17 ` Brendan Gregg
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=53EB2D31.8090204@redhat.com \
--to=dborkman@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=ast@plumgrid.com \
--cc=chema@google.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=torvalds@linux-foundation.org \
/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;
as well as URLs for NNTP newsgroup(s).