Message ID | 20210913155221.3729990-1-yhs@fb.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | BPF |
Headers | show |
Series | bpf: add support for new btf kind BTF_KIND_TAG | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for bpf-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 7 maintainers not CCed: linux-doc@vger.kernel.org kpsingh@kernel.org john.fastabend@gmail.com corbet@lwn.net songliubraving@fb.com netdev@vger.kernel.org kafai@fb.com |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 45 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
bpf/vmtest-bpf-next | success | VM_Test |
bpf/vmtest-bpf-next-PR | success | PR summary |
On Mon, Sep 13, 2021 at 8:53 AM Yonghong Song <yhs@fb.com> wrote: > > Add BTF_KIND_TAG documentation in btf.rst. > > Signed-off-by: Yonghong Song <yhs@fb.com> > --- Probably worth it to mention that component_idx for tag for VAR has to be -1. Acked-by: Andrii Nakryiko <andrii@kernel.org> > Documentation/bpf/btf.rst | 27 ++++++++++++++++++++++++++- > 1 file changed, 26 insertions(+), 1 deletion(-) > > diff --git a/Documentation/bpf/btf.rst b/Documentation/bpf/btf.rst > index 846354cd2d69..9fff578a0a35 100644 > --- a/Documentation/bpf/btf.rst > +++ b/Documentation/bpf/btf.rst > @@ -85,6 +85,7 @@ sequentially and type id is assigned to each recognized type starting from id > #define BTF_KIND_VAR 14 /* Variable */ > #define BTF_KIND_DATASEC 15 /* Section */ > #define BTF_KIND_FLOAT 16 /* Floating point */ > + #define BTF_KIND_TAG 17 /* Tag */ > > Note that the type section encodes debug info, not just pure types. > ``BTF_KIND_FUNC`` is not a type, and it represents a defined subprogram. > @@ -106,7 +107,7 @@ Each type contains the following common data:: > * "size" tells the size of the type it is describing. > * > * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT, > - * FUNC and FUNC_PROTO. > + * FUNC, FUNC_PROTO and TAG. > * "type" is a type_id referring to another type. > */ > union { > @@ -465,6 +466,30 @@ map definition. > > No additional type data follow ``btf_type``. > > +2.2.17 BTF_KIND_TAG > +~~~~~~~~~~~~~~~~~~~ > + > +``struct btf_type`` encoding requirement: > + * ``name_off``: offset to a non-empty string > + * ``info.kind_flag``: 0 > + * ``info.kind``: BTF_KIND_TAG > + * ``info.vlen``: 0 > + * ``type``: ``struct``, ``union``, ``func`` or ``var`` > + > +``btf_type`` is followed by ``struct btf_tag``.:: > + > + struct btf_tag { > + __u32 component_idx; > + }; > + > +The ``name_off`` encodes btf_tag attribute string. > +The ``type`` should be ``struct``, ``union``, ``func`` or ``var``. > +If ``btf_tag.component_idx = -1``, the btf_tag attribute is > +applied to a valid ``type``. Otherwise, the btf_tag attribute is > +applied to a ``struct``/``union`` member or a ``func`` argument, > +and ``btf_tag.component_idx`` should be a valid index (starting from 0) > +pointing to a member or an argument. > + > 3. BTF Kernel API > ***************** > > -- > 2.30.2 >
diff --git a/Documentation/bpf/btf.rst b/Documentation/bpf/btf.rst index 846354cd2d69..9fff578a0a35 100644 --- a/Documentation/bpf/btf.rst +++ b/Documentation/bpf/btf.rst @@ -85,6 +85,7 @@ sequentially and type id is assigned to each recognized type starting from id #define BTF_KIND_VAR 14 /* Variable */ #define BTF_KIND_DATASEC 15 /* Section */ #define BTF_KIND_FLOAT 16 /* Floating point */ + #define BTF_KIND_TAG 17 /* Tag */ Note that the type section encodes debug info, not just pure types. ``BTF_KIND_FUNC`` is not a type, and it represents a defined subprogram. @@ -106,7 +107,7 @@ Each type contains the following common data:: * "size" tells the size of the type it is describing. * * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT, - * FUNC and FUNC_PROTO. + * FUNC, FUNC_PROTO and TAG. * "type" is a type_id referring to another type. */ union { @@ -465,6 +466,30 @@ map definition. No additional type data follow ``btf_type``. +2.2.17 BTF_KIND_TAG +~~~~~~~~~~~~~~~~~~~ + +``struct btf_type`` encoding requirement: + * ``name_off``: offset to a non-empty string + * ``info.kind_flag``: 0 + * ``info.kind``: BTF_KIND_TAG + * ``info.vlen``: 0 + * ``type``: ``struct``, ``union``, ``func`` or ``var`` + +``btf_type`` is followed by ``struct btf_tag``.:: + + struct btf_tag { + __u32 component_idx; + }; + +The ``name_off`` encodes btf_tag attribute string. +The ``type`` should be ``struct``, ``union``, ``func`` or ``var``. +If ``btf_tag.component_idx = -1``, the btf_tag attribute is +applied to a valid ``type``. Otherwise, the btf_tag attribute is +applied to a ``struct``/``union`` member or a ``func`` argument, +and ``btf_tag.component_idx`` should be a valid index (starting from 0) +pointing to a member or an argument. + 3. BTF Kernel API *****************
Add BTF_KIND_TAG documentation in btf.rst. Signed-off-by: Yonghong Song <yhs@fb.com> --- Documentation/bpf/btf.rst | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-)