Merge branch 'libbpf: Support uniform BTF-defined key/value specification across...
authorAndrii Nakryiko <andrii@kernel.org>
Fri, 1 Oct 2021 22:31:51 +0000 (15:31 -0700)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 1 Oct 2021 22:31:51 +0000 (15:31 -0700)
commitd636c8da2d60cc4841ebd7b6e6a02db5c33e11e4
tree99c4e3b27c85b415115fb1f648e7d663d4f1f669
parent7bceeb95726b105bd4241c9635acc0836df675d4
parentbd368cb554d685c60e65ab799bf238663c682105
Merge branch 'libbpf: Support uniform BTF-defined key/value specification across all BPF maps'

Hengqi Chen says:

====================

Currently a bunch of (usually pretty specialized) BPF maps do not support
specifying BTF types for they key and value. For such maps, specifying
their definition like this:

  struct {
      __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
      __type(key, int);
      __type(value, int);
  } my_perf_buf SEC(".maps");

Would actually produce warnings about retrying BPF map creation without BTF.
Users are forced to know such nuances and use __uint(key_size, 4) instead.
This is non-uniform, annoying, and inconvenient.

This patch set teaches libbpf to recognize those specialized maps and removes
BTF type IDs when creating BPF map. Also, update existing BPF selftests to
exericse this change.
====================

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>