Repository: https://github.com/madsys/ALIRT - branch: main - HEAD at finalization: f95ab56 Note: the ci.yml matrix carries
continue-on-error: true, so the run-level conclusion is always “success”; “all green” in this report means every matrix job in a single run has conclusion=success (per-job data).
4.4.302/powerpc, 3.10.108/armv7) are not hidden
failures: the limitation declarations and the evidence for every attempted
combination remain in the ci.yml comments (see “Declared limitations”).| Version \ Arch | x86_64 | aarch64 | armv7 | mips | powerpc | riscv |
|---|---|---|---|---|---|---|
| 3.10.108 | yes | - | limitation | yes | - | - |
| 4.4.302 | yes | yes | yes | yes | limitation | - |
| 4.19.325 | yes | yes | yes | yes | yes | yes |
| 5.4.290 | yes | yes | yes | yes | yes | yes |
| 5.10.271 | yes | yes | yes | yes | yes | yes |
| 5.15.180 | yes | yes | yes | yes | yes | yes |
| 6.1.189 | yes | yes | yes | yes | yes | yes |
| 6.6.158 | yes | yes | yes | yes | yes | yes |
| 6.12.35 | yes | yes | yes | yes | yes | yes |
| 6.18.56 | yes | yes | yes | yes | yes | yes |
| 7.2.10 | yes | yes | yes | yes | yes | yes |
yes = matrix row exists and is green; limitation = row removed from the matrix (era-TCG cannot boot the guest, evidence below); not counted in the “all green” statistics.
| Failure mode | Root cause | Fix commit | Files |
|---|---|---|---|
| ppc64 (5.10/5.15) init_mm unavailable | the kprobe path was skipped wholesale (gate too wide: CONFIG_PPC64_ELF_ABI_V2 only exists on 6.1+); the GE scan window was too narrow | 60d83d0 (drop the skip, extend the GE gate to PPC64 && (ELF_ABI_V2 \|\| (LE && <6.1)), deepen the fallback DIAG) |
src/arch/powerpc/alirt_mm.h |
| ppc ‘modules’/’module_kset’ resolution failure | kallsyms_lookup_name is not callable on >= 5.7; kernel_read refuses /proc/kallsyms on >= 5.9 | cd108dc (shadow list-head approach) | src/compat/compat.h |
| riscv 4.19-5.10 leftover DIAG struct scan | temporary vmap_area output block inserted during diagnosis | 60d83d0 (delete the DIAG block, riscv alirt_mm.h lines 274-341; final run confirmed no DIAG output) | src/arch/riscv/alirt_mm.h |
| mips-3.10 all FP instructions fail to assemble | gcc >= 4.9 forwards -msoft-float to gas, which rejects every FP mnemonic; the 3.10 tree has no v4.4 SET_HARDFLOAT marker | 0d28bc4 (append #ifdef __ASSEMBLY__ .set hardfloat to asm.h - the ASSEMBLY gate is mandatory because asm.h is also included from C) |
tests/ci/build-kernel.sh |
| armv7-3.10 totally silent | 3.10 multi_v7_defconfig enables no QEMU-bootable machine (no CONFIG_ARCH_VEXPRESS); QEMU 2.5 vexpress passes ATAGS while 3.10 vexpress boots via DT only | fix chain: fb2e0d9 (CONFIG_OF) -> 21074f5 (DEBUG_KERNEL + RS1) -> a4828f3 (ARCH_VEXPRESS root cause) -> dbd5ec5 (explicit -dtb + build observability). Still would not boot (see limitations); row removed in f95ab56 | tests/ci/* (special paths cleaned up with the row removal) |
| armv7-3.10 build “finished” but no zImage | make stdout was discarded; a silently short build produced an empty image; QEMU load_image_targphys reports success on a 0-byte file, so the guest printed nothing and no error surfaced |
dbd5ec5 (full kbuild.log capture + hard fail on build error + non-empty image check before boot); kept as generic observability after the 3.10 row removal | tests/ci/build-kernel.sh, tests/ci/run-in-container.sh |
| ppc-4.4 zero output after SLOF handoff | TCG 2.11 has no book3s DABR emulation (SPR 1012); QEMU >= 3.0 pseries defaults to POWER9 TCG which kills pre-4.19 guests in head code; POWER8/POWER7 still silent | attempt chain: a6d3fe1 (move to QEMU 4.2) -> 0a3aa52 (POWER8 pin, disproven) -> 4617150 (POWER7 pin) -> cc810cd (no-initrd probe). All six combinations silent; row removed in f95ab56 | .github/workflows/ci.yml (limitation comments) |
| SLOF places the initrd inside the decompression window (4.19/5.4 report initramfs magic errors) | QEMU < 5.0 SLOF places the initrd by the ELF header, leaving no room for decompression | a6d3fe1 (inflate the zImage tail PT_LOAD segment to 128M) | tests/ci/run-in-container.sh |
| TCG has no HTM (“No Transactional Memory support in TCG”) | QEMU >= 2.10 enables HTM probing by default | era of 05e19f2 (cap-htm=off) |
tests/ci/run-in-container.sh |
| riscv 4.19 era QEMU cannot boot an Image directly | 4.19 has no OpenSBI packaging support | era of 2eb16df (fw_payload.bin path) | tests/ci/run-in-container.sh |
Symptom: SLOF prints normally and loads the kernel (“Detected RAM kernel at 400000”) -> after “Booting from memory…” the guest emits zero bytes and is killed by the 420s timeout.
Evidence combinations (all archived in the status-4.4.302-powerpc-rt
artifacts of the respective runs): 16.04/QEMU 2.5 silent; 18.04/QEMU 2.11
silent (TCG 2.11 lacks book3s DABR emulation); 20.04/QEMU 4.2 + POWER9 ->
immediate death by HV exception; + POWER8 silent; + POWER7 (pinned) silent;
+ POWER7 without initrd (cc810cd probe, run 39006650414) still silent - a
kernel that can start prints at least the banner or a “No init found” panic;
neither appears, so the kernel never starts and initrd placement is not the
cause. The BE combinations died even earlier (program exception on SLOF’s
first instruction).
Resolution: row removed; ci.yml comments record all combinations. This is not a kernel configuration problem - the same tree is fully green on powerpc 4.19+.
Symptom: never any guest output even though the build is completely fine.
Evidence combinations: 16.04/QEMU 2.5 + -M virt silent (3.10 has no
mach-virt; virt is DTB-boot only); vexpress-a15 silent; vexpress-a9 +
verified-good 2MB zImage (ARCH_VEXPRESS, DEBUG_LL=debug/vexpress.S RS1
port 0x1c090000, decompressor prints from its first instruction) + explicit
-dtb vexpress-v2p-ca9.dtb (dbd5ec5, run 39011349099) - 7 minutes of total
silence implies the kernel never executed. The 20.04/QEMU 4.2 combination
fails even earlier: gcc-9 compiling 3.10’s fs/aio.c hits a .err at the
assembly level (fbeab29, run 39015905972, 96-second build failure) - the era
toolchain (gcc-5) and the era QEMU (2.5) cannot be had together.
Resolution: row removed; ci.yml comments record all combinations.