mbox series

[bpf-next,0/6] s390/bpf: remove JITed image size limitations

Message ID 20191118180340.68373-1-iii@linux.ibm.com
Headers show
Series s390/bpf: remove JITed image size limitations | expand

Message

Ilya Leoshkevich Nov. 18, 2019, 6:03 p.m. UTC
This patch series introduces usage of relative long jumps and loads in
order to lift 64/512k size limits on JITed BPF programs on s390.

Patch 1 introduces long relative branches.
Patch 2 changes the way literal pool is arranged in order to be
compatible with long relative loads.
Patch 3 changes the way literal pool base register is loaded for large
programs.
Patch 4 replaces regular loads with long relative loads where they are
totally superior.
Patch 5 introduces long relative loads as an alternative way to load
constants in large programs. Regular loads are kept and still used for
small programs.
Patch 6 removes the size limit check.

Ilya Leoshkevich (6):
  s390/bpf: use relative long branches
  s390/bpf: align literal pool entries
  s390/bpf: load literal pool register using larl
  s390/bpf: use lgrl instead of lg where possible
  s390/bpf: use lg(f)rl when long displacement cannot be used
  s390/bpf: remove JITed image size limitations

 arch/s390/net/bpf_jit_comp.c | 348 +++++++++++++++++++++++++++--------
 1 file changed, 268 insertions(+), 80 deletions(-)

Comments

Alexei Starovoitov Nov. 19, 2019, 3:53 a.m. UTC | #1
On Mon, Nov 18, 2019 at 10:03 AM Ilya Leoshkevich <iii@linux.ibm.com> wrote:
>
> This patch series introduces usage of relative long jumps and loads in
> order to lift 64/512k size limits on JITed BPF programs on s390.
>
> Patch 1 introduces long relative branches.
> Patch 2 changes the way literal pool is arranged in order to be
> compatible with long relative loads.
> Patch 3 changes the way literal pool base register is loaded for large
> programs.
> Patch 4 replaces regular loads with long relative loads where they are
> totally superior.
> Patch 5 introduces long relative loads as an alternative way to load
> constants in large programs. Regular loads are kept and still used for
> small programs.
> Patch 6 removes the size limit check.

Applied. Thanks