On Sun, May 3, 2020 at 11:26 PM Yonghong Song <yhs@xxxxxx> wrote: > > Add bpf_reg_type PTR_TO_BTF_ID_OR_NULL support. > For tracing/iter program, the bpf program context > definition, e.g., for previous bpf_map target, looks like > struct bpf_iter__bpf_map { > struct bpf_iter_meta *meta; > struct bpf_map *map; > }; > > The kernel guarantees that meta is not NULL, but > map pointer maybe NULL. The NULL map indicates that all > objects have been traversed, so bpf program can take > proper action, e.g., do final aggregation and/or send > final report to user space. > > Add btf_id_or_null_non0_off to prog->aux structure, to > indicate that if the context access offset is not 0, > set to PTR_TO_BTF_ID_OR_NULL instead of PTR_TO_BTF_ID. > This bit is set for tracing/iter program. > > Signed-off-by: Yonghong Song <yhs@xxxxxx> > --- LGTM. Acked-by: Andrii Nakryiko <andriin@xxxxxx> > include/linux/bpf.h | 2 ++ > kernel/bpf/btf.c | 5 ++++- > kernel/bpf/verifier.c | 16 ++++++++++++---- > 3 files changed, 18 insertions(+), 5 deletions(-) > [...]