From: Christophe Leroy <christophe.leroy@csgroup.eu> To: Hari Bathini <hbathini@linux.ibm.com>, naveen.n.rao@linux.ibm.com, mpe@ellerman.id.au, ast@kernel.org, daniel@iogearbox.net Cc: paulus@samba.org, andrii@kernel.org, kafai@fb.com, songliubraving@fb.com, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Ravi Bangoria <ravi.bangoria@linux.ibm.com> Subject: Re: [PATCH v4 5/8] bpf ppc64: Add BPF_PROBE_MEM support for JIT Date: Wed, 29 Sep 2021 13:47:35 +0200 [thread overview] Message-ID: <9628c18d-001e-9777-e800-486a83844ac1@csgroup.eu> (raw) In-Reply-To: <20210929111855.50254-6-hbathini@linux.ibm.com> Le 29/09/2021 à 13:18, Hari Bathini a écrit : > From: Ravi Bangoria <ravi.bangoria@linux.ibm.com> > > 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) >
WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@csgroup.eu> To: Hari Bathini <hbathini@linux.ibm.com>, naveen.n.rao@linux.ibm.com, mpe@ellerman.id.au, ast@kernel.org, daniel@iogearbox.net Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>, songliubraving@fb.com, netdev@vger.kernel.org, john.fastabend@gmail.com, andrii@kernel.org, kpsingh@kernel.org, paulus@samba.org, yhs@fb.com, bpf@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kafai@fb.com Subject: Re: [PATCH v4 5/8] bpf ppc64: Add BPF_PROBE_MEM support for JIT Date: Wed, 29 Sep 2021 13:47:35 +0200 [thread overview] Message-ID: <9628c18d-001e-9777-e800-486a83844ac1@csgroup.eu> (raw) In-Reply-To: <20210929111855.50254-6-hbathini@linux.ibm.com> Le 29/09/2021 à 13:18, Hari Bathini a écrit : > From: Ravi Bangoria <ravi.bangoria@linux.ibm.com> > > 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) >
next prev parent reply other threads:[~2021-09-29 11:47 UTC|newest] Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-29 11:18 [PATCH v4 0/8] bpf powerpc: Add BPF_PROBE_MEM support in powerpc JIT compiler Hari Bathini 2021-09-29 11:18 ` Hari Bathini 2021-09-29 11:18 ` [PATCH v4 1/8] bpf powerpc: Remove unused SEEN_STACK Hari Bathini 2021-09-29 11:18 ` Hari Bathini 2021-09-29 11:18 ` [PATCH v4 2/8] bpf powerpc: Remove extra_pass from bpf_jit_build_body() Hari Bathini 2021-09-29 11:18 ` Hari Bathini 2021-09-29 11:18 ` [PATCH v4 3/8] bpf powerpc: refactor JIT compiler code Hari Bathini 2021-09-29 11:18 ` Hari Bathini 2021-09-29 11:42 ` Christophe Leroy 2021-09-29 11:42 ` Christophe Leroy 2021-09-29 11:18 ` [PATCH v4 4/8] powerpc/ppc-opcode: introduce PPC_RAW_BRANCH() macro Hari Bathini 2021-09-29 11:18 ` Hari Bathini 2021-09-29 11:18 ` [PATCH v4 5/8] bpf ppc64: Add BPF_PROBE_MEM support for JIT Hari Bathini 2021-09-29 11:18 ` Hari Bathini 2021-09-29 11:43 ` Christophe Leroy 2021-09-29 11:43 ` Christophe Leroy 2021-09-29 11:47 ` Christophe Leroy [this message] 2021-09-29 11:47 ` Christophe Leroy 2021-09-30 4:18 ` Jordan Niethe 2021-09-30 4:18 ` Jordan Niethe 2021-09-29 11:18 ` [PATCH v4 6/8] bpf ppc64: Access only if addr is kernel address Hari Bathini 2021-09-29 11:18 ` Hari Bathini 2021-09-29 11:44 ` LEROY Christophe 2021-09-29 11:44 ` LEROY Christophe 2021-09-29 11:18 ` [PATCH v4 7/8] bpf ppc32: Add BPF_PROBE_MEM support for JIT Hari Bathini 2021-09-29 11:18 ` Hari Bathini 2021-09-29 11:44 ` Christophe Leroy 2021-09-29 11:44 ` Christophe Leroy 2021-09-29 11:18 ` [PATCH v4 8/8] bpf ppc32: Access only if addr is kernel address Hari Bathini 2021-09-29 11:18 ` Hari Bathini 2021-09-29 11:45 ` Christophe Leroy 2021-09-29 11:45 ` Christophe Leroy 2023-09-14 6:18 ` Christophe Leroy 2023-09-14 6:18 ` Christophe Leroy 2023-09-14 8:23 ` Hari Bathini 2023-09-14 8:23 ` Hari Bathini 2021-09-30 20:57 ` [PATCH v4 0/8] bpf powerpc: Add BPF_PROBE_MEM support in powerpc JIT compiler Daniel Borkmann 2021-09-30 20:57 ` Daniel Borkmann 2021-10-01 21:22 ` Naveen N. Rao 2021-10-01 21:22 ` Naveen N. Rao 2021-10-03 22:49 ` Michael Ellerman 2021-10-03 22:49 ` Michael Ellerman 2021-10-04 8:05 ` Daniel Borkmann 2021-10-04 8:05 ` Daniel Borkmann 2021-10-04 8:43 ` Michael Ellerman 2021-10-04 8:43 ` Michael Ellerman
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=9628c18d-001e-9777-e800-486a83844ac1@csgroup.eu \ --to=christophe.leroy@csgroup.eu \ --cc=andrii@kernel.org \ --cc=ast@kernel.org \ --cc=bpf@vger.kernel.org \ --cc=daniel@iogearbox.net \ --cc=hbathini@linux.ibm.com \ --cc=john.fastabend@gmail.com \ --cc=kafai@fb.com \ --cc=kpsingh@kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mpe@ellerman.id.au \ --cc=naveen.n.rao@linux.ibm.com \ --cc=netdev@vger.kernel.org \ --cc=paulus@samba.org \ --cc=ravi.bangoria@linux.ibm.com \ --cc=songliubraving@fb.com \ --cc=yhs@fb.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.