Thread (23 messages) 23 messages, 6 authors, 2023-09-14

Re: [PATCH v4 5/8] bpf ppc64: Add BPF_PROBE_MEM support for JIT

flat view

From: Christophe Leroy <hidden>
Date: 2021-09-29 11:47:38
Also in: bpf, linuxppc-dev


Le 29/09/2021 à 13:18, Hari Bathini a écrit :
From: Ravi Bangoria <redacted>

BPF load instruction with BPF_PROBE_MEM mode can cause a fault
inside kernel. Append exception table for such instructions
within BPF program.

Unlike other archs which uses extable 'fixup' field to pass dest_reg
and nip, BPF exception table on PowerPC follows the generic PowerPC

For my curiosity, can you explain why we don't want and can't do the same on powerpc as on other archs ?

exception table design, where it populates both fixup and extable
sections within BPF program. fixup section contains two instructions,
first instruction clears dest_reg and 2nd jumps to next instruction
in the BPF code. extable 'insn' field contains relative offset of
the instruction and 'fixup' field contains relative offset of the
fixup entry. Example layout of BPF program with extable present:

              +------------------+
              |                  |
              |                  |
    0x4020 -->| ld   r27,4(r3)   |
              |                  |
              |                  |
    0x40ac -->| lwz  r3,0(r4)    |
              |                  |
              |                  |
              |------------------|
    0x4280 -->| li  r27,0        |  \ fixup entry
              | b   0x4024       |  /
    0x4288 -->| li  r3,0         |
              | b   0x40b0       |
              |------------------|
    0x4290 -->| insn=0xfffffd90  |  \ extable entry
              | fixup=0xffffffec |  /
    0x4298 -->| insn=0xfffffe14  |
              | fixup=0xffffffec |
              +------------------+

    (Addresses shown here are chosen random, not real)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help