bpf: Add BTF_ID_LIST_GLOBAL in btf_ids.h
authorYonghong Song <yhs@fb.com>
Mon, 20 Jul 2020 16:34:01 +0000 (09:34 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 21 Jul 2020 20:26:26 +0000 (13:26 -0700)
commit0f12e584b241285cf60a6227f3771fa444cfcf76
tree2168b0dbe894b1966d86451de379cffcad31f37a
parentd8dfe5bfe856c0c72b1750322dbfcad402e73373
bpf: Add BTF_ID_LIST_GLOBAL in btf_ids.h

Existing BTF_ID_LIST used a local static variable
to store btf_ids. This patch provided a new macro
BTF_ID_LIST_GLOBAL to store btf_ids in a global
variable which can be shared among multiple files.

The existing BTF_ID_LIST is still retained.
Two reasons. First, BTF_ID_LIST is also used to build
btf_ids for helper arguments which typically
is an array of 5. Since typically different
helpers have different signature, it makes
little sense to share them. Second, some
current computed btf_ids are indeed local.
If later those btf_ids are shared between
different files, they can use BTF_ID_LIST_GLOBAL then.

Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Link: https://lore.kernel.org/bpf/20200720163401.1393159-1-yhs@fb.com
include/linux/btf_ids.h
tools/include/linux/btf_ids.h
tools/testing/selftests/bpf/prog_tests/resolve_btfids.c