mbox series

[v2,0/4] s390/bpf: implement BPF_PROBE_MEM

Message ID 20200715233301.933201-1-iii@linux.ibm.com
Headers show
Series s390/bpf: implement BPF_PROBE_MEM | expand

Message

Ilya Leoshkevich July 15, 2020, 11:32 p.m. UTC
This patch series implements BPF_PROBE_MEM opcode, which is used in BPF
programs that walk chains of kernel pointers. It consists of two parts:
patches 1 and 2 enhance s390 exception table infrastructure, patches 3
and 4 contains the actual implementation and the test.

We would like to take this series via s390 tree, because it contains
dependent s390 extable and bpf jit changes. However, it would be great
if someone knowledgeable could review patches 3 and 4.

v1 -> v2:

- Add `jit->excnt = 0` in order to fix WARNINGs and fallbacks to the
  interpreter when running extra_pass. This wasn't easy to spot on
  bpf-next, since tests passed anyway. However, on v5.8-rc5 this led
  to panics.

Ilya Leoshkevich (4):
  s390/kernel: unify EX_TABLE* implementations
  s390/kernel: expand the exception table logic to allow new handling
    options
  s390/bpf: implement BPF_PROBE_MEM
  selftests/bpf: add exception handling test

 arch/s390/include/asm/asm-const.h             |  12 ++
 arch/s390/include/asm/extable.h               |  50 ++++++-
 arch/s390/include/asm/linkage.h               |  35 ++---
 arch/s390/kernel/kprobes.c                    |   4 +-
 arch/s390/kernel/traps.c                      |   7 +-
 arch/s390/mm/fault.c                          |   4 +-
 arch/s390/net/bpf_jit_comp.c                  | 139 +++++++++++++++++-
 scripts/sorttable.c                           |  25 ++++
 .../selftests/bpf/prog_tests/bpf_iter.c       |  17 +++
 .../selftests/bpf/progs/bpf_iter_exception.c  |  20 +++
 10 files changed, 273 insertions(+), 40 deletions(-)
 create mode 100644 arch/s390/include/asm/asm-const.h
 create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_exception.c

Comments

Alexei Starovoitov July 21, 2020, 6:01 p.m. UTC | #1
On Wed, Jul 15, 2020 at 4:38 PM Ilya Leoshkevich <iii@linux.ibm.com> wrote:
>
> This patch series implements BPF_PROBE_MEM opcode, which is used in BPF
> programs that walk chains of kernel pointers. It consists of two parts:
> patches 1 and 2 enhance s390 exception table infrastructure, patches 3
> and 4 contains the actual implementation and the test.
>
> We would like to take this series via s390 tree, because it contains
> dependent s390 extable and bpf jit changes. However, it would be great
> if someone knowledgeable could review patches 3 and 4.
>
> v1 -> v2:
>
> - Add `jit->excnt = 0` in order to fix WARNINGs and fallbacks to the
>   interpreter when running extra_pass. This wasn't easy to spot on
>   bpf-next, since tests passed anyway. However, on v5.8-rc5 this led
>   to panics.

Applied. Thanks
Heiko Carstens July 21, 2020, 8:16 p.m. UTC | #2
Hi Alexei,

On Tue, Jul 21, 2020 at 11:01:22AM -0700, Alexei Starovoitov wrote:
> On Wed, Jul 15, 2020 at 4:38 PM Ilya Leoshkevich <iii@linux.ibm.com> wrote:
> >
> > This patch series implements BPF_PROBE_MEM opcode, which is used in BPF
> > programs that walk chains of kernel pointers. It consists of two parts:
> > patches 1 and 2 enhance s390 exception table infrastructure, patches 3
> > and 4 contains the actual implementation and the test.
> >
> > We would like to take this series via s390 tree, because it contains
> > dependent s390 extable and bpf jit changes. However, it would be great
> > if someone knowledgeable could review patches 3 and 4.

You probably missed this part? It should go upstream via the s390
tree, plus this version is broken since it crashes immediatly if KASLR
is enabled.

> Applied. Thanks

A fixed variant is applied to the s390 tree:
https://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git/commit/?h=features&id=05a68e892e89c97df6650cd8cc55058002657cbc
Alexei Starovoitov July 21, 2020, 8:23 p.m. UTC | #3
On Tue, Jul 21, 2020 at 1:16 PM Heiko Carstens <hca@linux.ibm.com> wrote:
>
> Hi Alexei,
>
> On Tue, Jul 21, 2020 at 11:01:22AM -0700, Alexei Starovoitov wrote:
> > On Wed, Jul 15, 2020 at 4:38 PM Ilya Leoshkevich <iii@linux.ibm.com> wrote:
> > >
> > > This patch series implements BPF_PROBE_MEM opcode, which is used in BPF
> > > programs that walk chains of kernel pointers. It consists of two parts:
> > > patches 1 and 2 enhance s390 exception table infrastructure, patches 3
> > > and 4 contains the actual implementation and the test.
> > >
> > > We would like to take this series via s390 tree, because it contains
> > > dependent s390 extable and bpf jit changes. However, it would be great
> > > if someone knowledgeable could review patches 3 and 4.
>
> You probably missed this part? It should go upstream via the s390
> tree, plus this version is broken since it crashes immediatly if KASLR
> is enabled.

Ahh. sorry. will drop.