On Mon, Aug 01, 2022 at 10:34:16PM -0700, Alexei Starovoitov wrote: > On Mon, Jul 25, 2022 at 9:40 AM Paul E. McKenney <paulmck@xxxxxxxxxx> wrote: > > > > On Mon, Jul 25, 2022 at 01:15:49PM +0100, Matthew Wilcox wrote: > > > On Fri, Jul 22, 2022 at 02:23:46PM -0700, Paul E. McKenney wrote: > > > > On Fri, Jul 22, 2022 at 10:17:57PM +0200, Daniel Borkmann wrote: > > > > > Otherwise I think this could be a bit misunderstood, e.g. most of the networking > > > > > programs (e.g. XDP, tc, sock_addr) have a fixed framework around them where > > > > > attaching programs is part of ABI. > > > > > > > > Excellent point, thank you! > > > > > > > > Apologies for the newbie question, but does BTF_ID() mark a function as > > > > ABI from the viewpoing of a BPF program calling that function, attaching > > > > to that function, or both? Either way, is it worth mentioning this > > > > in this QA entry? > > > > > > Not necessarily. For example, __filemap_add_folio has a BTF_ID(), but > > > it is not ABI (it's error injection). > > > > OK, sounds like something to leave out of the QA, then. > > Obviously, BTF_ID marking doesn't make the kernel function an abi > in any way. Just like EXPORT_SYMBOL_GPL doesn't do it. > Documentation/bpf/kfuncs.rst already explains it. > Probably worth repeating in the QA part of the doc. Like this? Thanx, Paul ------------------------------------------------------------------------ commit 9346b452b92fc520a59da655b55d6bc40f9d1d14 Author: Paul E. McKenney <paulmck@xxxxxxxxxx> Date: Tue Aug 2 10:31:17 2022 -0700 bpf: Update bpf_design_QA.rst to clarify that BTF_ID does not ABIify a function This patch updates bpf_design_QA.rst to clarify that mentioning a function to the BTF_ID macro does not make that function become part of the Linux kernel's ABI. Suggested-by: Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx> diff --git a/Documentation/bpf/bpf_design_QA.rst b/Documentation/bpf/bpf_design_QA.rst index a06ae8a828e3d..a210b8a4df005 100644 --- a/Documentation/bpf/bpf_design_QA.rst +++ b/Documentation/bpf/bpf_design_QA.rst @@ -291,3 +291,10 @@ The kernel function prototypes will change, and BPF programs attaching to them will need to change. The BPF compile-once-run-everywhere (CO-RE) should be used in order to make it easier to adapt your BPF programs to different versions of the kernel. + +Q: Marking a function with BTF_ID makes that function an ABI? +------------------------------------------------------------- +A: NO. + +The BTF_ID macro does not cause a function to become part of the ABI +any more than does the EXPORT_SYMBOL_GPL macro.