Messages in this thread | | | Subject | Re: [PATCH bpf-next 1/1] arm64: bpf: Add BPF exception tables | From | Daniel Borkmann <> | Date | Fri, 31 Jul 2020 00:45:29 +0200 |
| |
On 7/30/20 11:14 PM, Jean-Philippe Brucker wrote: > On Thu, Jul 30, 2020 at 09:47:39PM +0200, Daniel Borkmann wrote: >> On 7/30/20 4:22 PM, Jean-Philippe Brucker wrote: >>> On Thu, Jul 30, 2020 at 08:28:56AM -0400, Qian Cai wrote: >>>> On Tue, Jul 28, 2020 at 05:21:26PM +0200, Jean-Philippe Brucker wrote: >>>>> When a tracing BPF program attempts to read memory without using the >>>>> bpf_probe_read() helper, the verifier marks the load instruction with >>>>> the BPF_PROBE_MEM flag. Since the arm64 JIT does not currently recognize >>>>> this flag it falls back to the interpreter. >>>>> >>>>> Add support for BPF_PROBE_MEM, by appending an exception table to the >>>>> BPF program. If the load instruction causes a data abort, the fixup >>>>> infrastructure finds the exception table and fixes up the fault, by >>>>> clearing the destination register and jumping over the faulting >>>>> instruction. >>>>> >>>>> To keep the compact exception table entry format, inspect the pc in >>>>> fixup_exception(). A more generic solution would add a "handler" field >>>>> to the table entry, like on x86 and s390. >>>>> >>>>> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> >>>> >>>> This will fail to compile on arm64, >>>> >>>> https://gitlab.com/cailca/linux-mm/-/blob/master/arm64.config >>>> >>>> arch/arm64/mm/extable.o: In function `fixup_exception': >>>> arch/arm64/mm/extable.c:19: undefined reference to `arm64_bpf_fixup_exception' >>> >>> Thanks for the report, I attached a fix. Daniel, can I squash it and >>> resend as v2 or is it too late? >> >> If you want I can squash your attached snippet into the original patch of >> yours. If you want to send a v2 that is fine as well of course. Let me know. > > Yes please squash it into the original patch, sorry for the mess
Done, thanks!
| |