[4/4] Introduce the kabi tool from Oracle and custom enhancements + documentation.#5
Merged
casasnovas merged 19 commits intomainfrom Mar 16, 2026
Merged
[4/4] Introduce the kabi tool from Oracle and custom enhancements + documentation.#5casasnovas merged 19 commits intomainfrom
casasnovas merged 19 commits intomainfrom
Conversation
This was referenced Mar 2, 2026
7ab4d27 to
5b49c43
Compare
5b49c43 to
f5a4cd3
Compare
6160dd8 to
3ba28b4
Compare
24315a8 to
999d8fa
Compare
3ba28b4 to
ca9121b
Compare
Collaborator
Author
|
To test the cd /path/to/hypervisor-dev/repo/
( cd scripts/kabi ; pip install -e . )
kabi tui \
--repository /path/to/linux/repo \
--rev-list v4.19.19..origin/kernel/xcpng-4.19.325-cip129.8.0.44.1/base \
--old-vmlinux ./kernel-abis/vmlinux-4.19.19.o \
--new-vmlinux ./kernel-abis/vmlinux-4.19.325-cip129.o \
--locked-file ./kernel-abis/xcpng-8.3-kabi_lockedlist \
./kernel-abis/Modules.kabi-4.19.19 ./kernel-abis/Symtypes.build-4.19.325-cip129Note The |
ca9121b to
bc7f0ed
Compare
ad30208 to
74f5bd3
Compare
371cbd3 to
29d1b6c
Compare
4fbe474 to
2cbf9df
Compare
29d1b6c to
529a41e
Compare
7b66050 to
97c3543
Compare
Source: https://github.com/oracle/linux-uek/blob/uek6/u3/uek-rpm/tools/kabi The branch uek6/u3 was pointing to: aa0f76ed9c5865dc1592653877c9fa3ec56e3ad Original commit description: When kABI breakages are detected, a common reason is that struct members referenced by a function argument have changed. Since genksyms recursively includes definitions of every referenced struct, the changed struct may be very unrelated to the function whose kABI broke, and check-kabi can do very little to diagnose the reason. However, genksyms can produce "symtypes" data, which contains the definitions of each type genksyms needed to produce the kABI hashes for a given compilation unit. Create a tool which is capable of combining all symtypes files produced by a kernel build, minimizing them, and then filtering them to contain only data relevant to a kABI definition. Original-Author: Stephen Brennan <stephen.s.brennan@oracle.com> Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
This was generated using: kabi collect /path/to/source/rpm/repo/BUILD/ -o Symtypes.build-<version> Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
This was generated using:
./scripts/kabi consolidate \
--locked-list kernel-abis/xcpng-8.3-kabi_lockedlist
--input kernel-abis/Symtypes.build-<version>
--output kernel-abis/Modules.kabi-<version>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
This will be useful for reviewers of the v4.19 kernel rebase, or folks playing with the kabi tool, without having them rebuild the kernel to test. Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
This new interface presents the type changes as well as different useful information when having to neutralize them: - binary modules impacted by the change - pahole output for old/new type - commits introducing the kABI changes - exported symbols impacted by the type change - file where the type is defined Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Collaborator
Author
|
Thanks for all the reviews!! |
34270f0 to
eeafee3
Compare
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
…abi script too. Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
…i script too. Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
…site actions. Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
eeafee3 to
7b7b1ee
Compare
This file contains hidden or 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
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.
This pull-request adds a new tool,
kabi, imported from the Oracle UEK sources. Modifications aremade to it to add an interactive interface augmented with many information required when handling
kABI changes, most notably:
paholefor the original/rebased typeThis PR includes extensive and almost exhaustive documentation on how to neutralize kABI changes.
This pull-request is the last in a series adding tools and documentation on maintaining
our dom0 kernel - for extra context, the final state can be seen here (the final README
especially):
https://github.com/xcp-ng/hypervisor-dev/tree/quentin-main
I've tried to split the changes into palatable/reviewable PRs, full list: