Messages in this thread | | | Subject | Re: [PATCH bpf-next 1/1] arm64: bpf: Add BPF exception tables | From | Daniel Borkmann <> | Date | Thu, 30 Jul 2020 21:47:39 +0200 |
| |
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.
Thanks, Daniel
| |