Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> writes: > >> libbpf >> ====== >> >> @@ -9,6 +11,7 @@ libbpf >> API Documentation <https://libbpf.readthedocs.io/en/latest/api.html> > > I'd put program_types here, it's more relevant and important than > libbpf naming conventions Good suggestion, thanks. >> libbpf_naming_convention >> libbpf_build >> + program_types >> >> This is documentation for libbpf, a userspace library for loading and >> interacting with bpf programs. >> diff --git a/Documentation/bpf/libbpf/program_types.rst b/Documentation/bpf/libbpf/program_types.rst >> new file mode 100644 >> index 000000000000..dc65ede09eef >> --- /dev/null >> +++ b/Documentation/bpf/libbpf/program_types.rst >> @@ -0,0 +1,18 @@ >> +.. SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) >> + >> +.. _program_types_and_elf: >> + >> +Program Types and ELF Sections > > nit: two spaces? Ack. >> +=============================== >> + >> +The table below lists the program types, their attach types where relevant and the ELF section >> +names supported by libbpf for them. The ELF section names follow these rules: >> + >> +- ``type`` is an exact match, e.g. ``SEC("socket")`` >> +- ``type+`` means it can be either exact ``SEC("type")`` or well-formed ``SEC("type/extras")`` >> + with a ‘``/``’ separator, e.g. ``SEC("tracepoint/syscalls/sys_enter_open")`` > > '/' is always going to be a type and "extras" separator, but extra > section format is not formalized. We have cases where it's all '/'s > (like tracepoint you mentioned), but newer and more complicated format > uses ':' as separator, e.g. > SEC("usdt/<path-to-binary>:<usdt_provide>:<usdt_name>") (let's mention > the latter as well to not create false impression of only ever having > '/' as separator) I will add a more detailed description extras format and include the USDT example. >> + >> +.. csv-table:: Program Types and Their ELF Section Names >> + :file: ../../output/program_types.csv >> + :widths: 40 30 20 10 >> + :header-rows: 1 > > it would be helpful to include a short snippet from generated CSV file > to give a general idea of the output Ack.