Skip to content

K5: x86-64 at distribution strength #6

Description

@tamnd

This tracks K5, x86-64 at distribution strength: the Debian config and then Fedora's, allmodconfig, kselftest and LTP, modules built by one compiler loaded into a kernel built by the other, and DWARF and BTF. The full text is in docs/plan/15-milestones.md.

Harness

  • rk cross-modules (Add rk cross-modules #34). It checks every module against the other kernel without booting (relocations, the whole vermagic, missing exports, CRCs), then boots the kunit suite with the reference kernel and its own modules, the reference kernel with the rucc modules, and the rucc kernel with the reference modules. Both crossed boots must pass every unit the first one passed. The nightly runs it after rk test, and it does not turn the night red yet
  • kselftest and LTP in the initramfs. kselftest is done (rk selftests, and kselftest units in rk test #35): rk selftests builds the row's collections against a finished build with either compiler, and rk test --kinds kselftest boots each collection with its programs and their shared libraries in the initramfs and grades kselftest:<collection>:<program> units like KUnit. On the 7.2.8 runner 26 collections built 199 programs with gcc-14. LTP followed in Build LTP with rk ltp and run it in rk test #37: ltp.toml pins LTP 20260529 by hash, rk ltp builds it against a finished build with either compiler and strips the debug info, and rk test --kinds ltp boots each runtest file (syscalls, mm, fs, sched, cve and four more on X64 and A64) with only the programs it names and grades ltp:<runtest>:<tag> units. With gcc on 6.12.111 every test in those nine files built. The guest gets enough memory for the initramfs since then. With rucc, libltp stopped on strlen of a literal in a static initializer, which folds since Fold strlen and strcmp of string literals under their plain names rucc#2599. The kernel and nightly workflows pin rucc 0.18.8 since Pin rucc v0.18.8 in the kernel and nightly workflows #38, and with it tinyconfig gets through Kconfig and compiles all but the four -m16 realmode units
  • Pinned distro configs for Debian 13 and Fedora 44 (Pinned Debian 13 and Fedora 44 kernel configs for rk build #36). configs/distro/ holds the configs from linux-image-6.12.111+deb13-amd64 and kernel-core-7.2.8-200.fc44, unchanged, with the package and config hashes in distros.toml. rk build 6.12.111 --config debian-13 and rk build 7.2.8 --config fedora-44 check the hash, blank the distribution certificates, settle with olddefconfig, and list in build.json what the toolchain could not keep (BTF without pahole, Rust without rustc)
  • The BTF differential

rucc

rucc-real-corpus

  • LTP and kselftest built as user projects

Exit criterion

  • rk test 7.2.8 --row X64 --config debian-13+test --kinds boot,smoke,kunit,kselftest,ltp passes and the dmesg subset holds
  • rk build 7.2.8 --row X64 --config allmodconfig succeeds with every differential and objtool clean
  • rk cross-modules 7.2.8 --row X64 passes both ways
  • The BTF differential is clean apart from functions that depend on inlining
  • The first three hold on 6.12.y and 6.6.y

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/milestoneTracking issue for a K milestonepriority/p2Should land in the current milestonerow/x64x86-64

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions