-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bpftool sync 2024-05-29 #147
Merged
qmonnet
merged 8 commits into
libbpf:main
from
qmonnet:bpftool-sync-2024-05-29T09-30-31.352Z
May 29, 2024
Merged
Bpftool sync 2024-05-29 #147
qmonnet
merged 8 commits into
libbpf:main
from
qmonnet:bpftool-sync-2024-05-29T09-30-31.352Z
May 29, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Make sure we keep the file up-to-date with regards to the version in the Linux repository. Reuse libbpf's commit libbpf/libbpf@e05542003381 ("sync: Commit .mailmap changes from script when sync-ing repo"). Signed-off-by: Quentin Monnet <[email protected]>
Pull latest libbpf from mirror. Libbpf version: 1.5.0 Libbpf commit: 9b789075a993e8235aac301126e58ff7b380da5f Signed-off-by: Quentin Monnet <[email protected]>
To pick up the changes in this cset: 3c7a8e190bc58081 ("uapi: introduce uapi-friendly macros for GENMASK") That just causes perf to rebuild. Its just some macros going to an uapi header that we now have to grab a copy into tools/ as well. This addresses this perf build warning: Warning: Kernel ABI header differences: diff -u tools/include/linux/bits.h include/linux/bits.h Cc: Adrian Hunter <[email protected]> Cc: Ian Rogers <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Kan Liang <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Paolo Bonzini <[email protected]> Link: https://lore.kernel.org/lkml/ZiwJsFOBez0MS4r9@x1 Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
Sort bpftool c dump output; aiming to simplify vmlinux.h diffing and forcing more natural type definitions ordering. Definitions are sorted first by their BTF kind ranks, then by their base type name and by their own name. Type ranks Assign ranks to btf kinds (defined in function btf_type_rank) to set next order: 1. Anonymous enums/enums64 2. Named enums/enums64 3. Trivial types typedefs (ints, then floats) 4. Structs/Unions 5. Function prototypes 6. Forward declarations Type rank is set to maximum for unnamed reference types, structs and unions to avoid emitting those types early. They will be emitted as part of the type chain starting with named type. Lexicographical ordering Each type is assigned a sort_name and own_name. sort_name is the resolved name of the final base type for reference types (typedef, pointer, array etc). Sorting by sort_name allows to group typedefs of the same base type. sort_name for non-reference type is the same as own_name. own_name is a direct name of particular type, is used as final sorting step. Signed-off-by: Mykyta Yatsenko <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Tested-by: Andrii Nakryiko <[email protected]> Reviewed-by: Quentin Monnet <[email protected]> Acked-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/bpf/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]>
With pre-generated vmlinux.h there is no dependency on neither vmlinux nor bootstrap bpftool. Define dependencies separately for both modes. This avoids needless rebuilds in some corner cases. Suggested-by: Jan Stancek <[email protected]> Signed-off-by: Artem Savkov <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Acked-by: Quentin Monnet <[email protected]> Link: https://lore.kernel.org/bpf/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]>
LLVM 17 started treating const structs as constants: * llvm/llvm-project@0b2d5b967d98 Combined with pointer laundering via ptr_to_u64, which takes a const ptr, but in reality treats the underlying memory as mutable, this makes clang always pass zero to btf__type_by_id, which breaks full name resolution. Disassembly before (LLVM 16) and after (LLVM 17): - 8b 75 cc mov -0x34(%rbp),%esi - e8 47 8d 02 00 call 3f5b0 <btf__type_by_id> + 31 f6 xor %esi,%esi + e8 a9 8c 02 00 call 3f510 <btf__type_by_id> It's a bigger project to fix this properly (and a question whether LLVM itself should detect this), but for right now let's just fix bpftool. For more information, see this thread in bpf mailing list: * https://lore.kernel.org/bpf/CABWYdi0ymezpYsQsPv7qzpx2fWuTkoD1-wG1eT-9x-TSREFrQg@mail.gmail.com/T/ Fixes: b662000aff84 ("bpftool: Adding support for BTF program names") Signed-off-by: Ivan Babrou <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Acked-by: Nick Desaulniers <[email protected]> Acked-by: Yonghong Song <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
tstamp_type is now set based on actual clockid_t compressed into 2 bits. To make the design scalable for future needs this commit bring in the change to extend the tstamp_type:1 to tstamp_type:2 to support other clockid_t timestamp. We now support CLOCK_TAI as part of tstamp_type as part of this commit with existing support CLOCK_MONOTONIC and CLOCK_REALTIME. Signed-off-by: Abhishek Chauhan <[email protected]> Reviewed-by: Willem de Bruijn <[email protected]> Reviewed-by: Martin KaFai Lau <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
Syncing latest bpftool commits from kernel repository. Baseline bpf-next commit: 009367099eb61a4fc2af44d4eb06b6b4de7de6db Checkpoint bpf-next commit: eb4e7726279a344c82e3c23be396bcfd0a4d5669 Baseline bpf commit: 3e9bc0472b910d4115e16e9c2d684c7757cb6c60 Checkpoint bpf commit: 9dfdb706e164ae869b1d97f83ebf8523b2809714 Abhishek Chauhan (1): net: Add additional bit to support clockid_t timestamp type Arnaldo Carvalho de Melo (1): tools headers: Synchronize linux/bits.h with the kernel sources Artem Savkov (1): bpftool: Fix make dependencies for vmlinux.h Ivan Babrou (1): bpftool: Un-const bpf_func_info to fix it for llvm 17 and newer Mykyta Yatsenko (1): bpftool: Introduce btf c dump sorting bash-completion/bpftool | 3 + docs/bpftool-btf.rst | 6 +- include/uapi/asm-generic/bitsperlong.h | 4 + include/uapi/linux/bpf.h | 15 ++- src/Makefile | 3 +- src/btf.c | 138 ++++++++++++++++++++++++- src/common.c | 2 +- 7 files changed, 157 insertions(+), 14 deletions(-) Signed-off-by: Quentin Monnet <[email protected]>
qmonnet
force-pushed
the
bpftool-sync-2024-05-29T09-30-31.352Z
branch
from
May 29, 2024 09:41
039881b
to
19c600a
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull latest libbpf from mirror and sync bpftool repo with kernel, up to the commits used for libbpf sync. This is an automatic update performed by calling the sync script from this repo:
And add a commit to automatically sync-up the
.mailmap
file.