On 12/18/2018 02:31 AM, Yonghong Song wrote: > Current btf func_info, line_info and jited_line are designed to be > extensible. The record sizes for {func,line}_info are passed to kernel, > and the record sizes for {func,line,jited_line}_info are returned to > userspace during bpf_prog_info query. > > In bpf selftests test_btf.c, when testing whether kernel returns > a legitimate {func,line, jited_line)_info rec_size, the test only > compares to the minimum allowed size. If the returned rec_size is smaller > than the minimum allowed size, it is considered incorrect. > The minimum allowed size for these three info sizes are equal to > current value of sizeof(struct bpf_func_info), sizeof(struct bpf_line_info) > and sizeof(__u64). > > The original thinking was that in the future when rec_size is increased > in kernel, the same test should run correctly. But this sacrificed > the precision of testing under the very kernel the test is shipped with, > and bpf selftest is typically run with the same repo kernel. > > So this patch changed the testing of rec_size such that the > kernel returned value should be equal to the size defined by > tools uapi header bpf.h which syncs with kernel uapi header. > > Martin discovered a bug in one of rec_size comparisons. > Instead of comparing to minimum func_info rec_size 8, it compares to 4. > This patch fixed that issue as well. > > Fixes: 999d82cbc044 ("tools/bpf: enhance test_btf file testing to test func > info") > Fixes: 05687352c600 ("bpf: Refactor and bug fix in test_func_type in > test_btf.c") > Fixes: 4d6304c76355 ("bpf: Add unit tests for bpf_line_info") > Suggested-by: Martin KaFai Lau <ka...@fb.com> > Acked-by: Martin KaFai Lau <ka...@fb.com> > Signed-off-by: Yonghong Song <y...@fb.com>
Applied to bpf-next, thanks!