Repository navigation
docs: kernel readiness runbook, with the 23 Oct rehearsal (v7.3 + next-20261022) - #525
Merged
Merged
Conversation
The box runs a kernel we build (v7.3-rc4 plus the IOMMU PerfOpt backports, clang, debug info off, two MOKs), and moving it to the next upstream tag was an investigation each time. This adds `docs/kernel.md`: the step list from tag to a box that runs it - build on another machine, sign with the two MOKs, install, leave GRUB_DEFAULT alone, the owner's reboot, the verify commands, the hardware gate, and the weekly package / 1bit OS image that must pick the new kernel up - plus the traps that have cost time (module-signing-only MOK rejected for images, an unsigned copy in /boot becoming a boot entry, a firmware reset dropping the MOKs). It also records the 2026-10-23 rehearsal: - no `v7.4*` tag exists yet (v7.3 final, 2026-10-18; the 7.4 merge window is open, no `v7.3.y`), so the rehearsal ran against `v7.3` (backports re-applied, clean) *and* linux-next `next-20261022` (the 7.4 merge-window content, where the PerfOpt series is already native, so the backports are dropped rather than rebased); - both built with the config of record at clang 21.1.8, `bindeb-pkg` passing in ~15 min each; - the out-of-tree `amdxdna` builds against both trees - the most likely 7.4 break is not there yet; - `olddefconfig` deltas (28 lines on v7.3, 110 on next) and the traps: `libdw-dev`, `export LLVM=1`, the driver's empty `ARCH` breaking `scripts/Makefile.clang`, and `+` in the release string for a tree past its tag. Linked from README (the box's kernel is ours too) and from the release run, which already needs a readable kernel image for 1bit OS. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
bong-water-water-bong
pushed a commit
that referenced
this pull request
Oct 23, 2026
…follow-up) Data for the owner's release today, no prose for its own sake: - `docs/releases.md` gains a **v2026.43 (candidate, 23 Oct)** section: the release sha and every pin, the four artifacts and the six checks as tables (marked *pending* until the release box's `RELEASE-CANDIDATE.md` exists), and a grouped changelog of everything merged since the 18 Oct rehearsal - HRX speed (verify kernels +31-39 % on 27B MTP, split-K decode 23.7 -> 47.1 on Qwen3.5-4B 32K, Flash-Next MoE 5.1 -> 26 tok/s, prompt FA +45 % on Qwen3-4B, warm-up TTFT 2.64 -> 0.80 s), the batched N=8 cells (50.7 / 138.1 / 194.3 aggregate tok/s), correctness (strict placement by default, 43/43 census, #315 resolved on a 37-arm soak, #433 closed on 120 loads), the sealed NPU packaging, the Lemonade one-hop + catalog proofs (22 HRX entries), the OS image's signed UKI, and the tooling (gpu-hold queue, census, kernel runbook). - `README.md` gets the same status as a table under the opening paragraph, with each number's standard (lemonade bench standard or ours) and the power state where it matters. Every line names its PR; every number comes from the auto-opt database rows, the catalog proofs or a closed issue, and carries the standard it was measured under. Nothing is claimed as shipped: the candidate's artifacts and checks stay *pending* until the release run writes them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bong-water-water-bong
added a commit
that referenced
this pull request
Oct 23, 2026
* docs: the v2026.43 candidate section and the README status table (#525 follow-up) Data for the owner's release today, no prose for its own sake: - `docs/releases.md` gains a **v2026.43 (candidate, 23 Oct)** section: the release sha and every pin, the four artifacts and the six checks as tables (marked *pending* until the release box's `RELEASE-CANDIDATE.md` exists), and a grouped changelog of everything merged since the 18 Oct rehearsal - HRX speed (verify kernels +31-39 % on 27B MTP, split-K decode 23.7 -> 47.1 on Qwen3.5-4B 32K, Flash-Next MoE 5.1 -> 26 tok/s, prompt FA +45 % on Qwen3-4B, warm-up TTFT 2.64 -> 0.80 s), the batched N=8 cells (50.7 / 138.1 / 194.3 aggregate tok/s), correctness (strict placement by default, 43/43 census, #315 resolved on a 37-arm soak, #433 closed on 120 loads), the sealed NPU packaging, the Lemonade one-hop + catalog proofs (22 HRX entries), the OS image's signed UKI, and the tooling (gpu-hold queue, census, kernel runbook). - `README.md` gets the same status as a table under the opening paragraph, with each number's standard (lemonade bench standard or ours) and the power state where it matters. Every line names its PR; every number comes from the auto-opt database rows, the catalog proofs or a closed issue, and carries the standard it was measured under. Nothing is claimed as shipped: the candidate's artifacts and checks stay *pending* until the release run writes them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs: v2026.43 pins after #526, and no internal file references Two review fixes on the candidate section: - `gpu-kernels` pin `abaa6bc484d5` -> `744bd713d968` (#526, the top-1 batched window from 5 tokens), with the batched cells noted as measured one pin earlier, and the engine row now names `7871c71d` — main when the last release-blocking PR merged. Adds the `npu-runtime` pin (`ce9fa59adf95`) so every row the release run records has a row here. - the candidate paragraph pointed at a file that only exists on the release box; public docs name files in this repository only, so it says "the release run" and what that run records. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: bong-water-water-bong <bong-water-water-bong@1bit.gg> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
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.
Adds
docs/kernel.md, the runbook the Gantt row "Kernel 7.4 readiness" is about: every source is pinned, so a release is a bump, not a scramble. Also records the 2026-10-23 rehearsal of that runbook against the newest tags that exist today.What the page covers
build -> sign -> install -> grub entry -> reboot (owner) -> mokutil -> hw-gate -> weekly package + 1bit OS image, with the facts that go stale marked as facts and the commands that do not:v7.3-rc4+ the two IOMMU PerfOpt backports, why: prefill +21–25 %, decode unchanged, greedy output byte-identical), and the out-of-tree modules that must follow every kernel (amdxdna, the fan EC);postinst.dhook, and the traps: a module-signing-only MOK is rejected for kernel images, an unsignedvmlinuz-*.unsignedin/bootbecomes a boot entry, a firmware reset drops the MOKs;GRUB_DEFAULTis left alone — the previous kernel stays the fallback and the owner chooses when the box moves;VMLINUZ=) andos/mini/mkimage.sh(MOK_KEY/MOK_CERT, the signed UKI), which is where a new kernel lands in the packages.The rehearsal (2026-10-23)
No
v7.4*tag exists (v7.3final, 2026-10-18; nov7.3.y; the 7.4 merge window is open — torvalds master isMerge tag 'net-next-7.4'). So it ran twice, on a separate 16-core machine, with the config of record (/boot/config-7.3.0-rc4-1bit-perfopt),LLVM=1clang 21.1.8,nice -n 19 make -j12 bindeb-pkg:olddefconfigdeltabindeb-pkgv7.37.3.0-1bit-perfopt+next-20261022(7.4 merge-window content)ANDROID_BINDER*,ARCH_HAS_DEBUG_WX, …)7.3.0-next-20261022-1bit-perfoptThe out-of-tree
amdxdnabuilds against both trees (MAKE_RC=0,amdxdna.ko), so the most likely 7.4 break is not there yet — worth re-running the momentv7.4-rc1is tagged, since next is a moving target.Traps found and written down:
libdw-devis the packaging dependency that stopsbindeb-pkgindpkg-checkbuilddeps;LLVM=1must be exported or the packaging stage re-enters make with the wrong compiler; the driver's own Makefile exports an emptyARCH, which makesscripts/Makefile.clangabort withadd '--target=' option(passARCH=x86_64); a tree with commits past its tag gets+in the release string and in module vermagic.Verification
python3 tools/copyright.py --check→ rc 0 (the new page carries the Apache notice).docs/kernel.mdis linked fromREADME.mdand from the release run section ofdocs/releases.md.GRUB_DEFAULT, module signers), never installed on or rebooted.Not done here (deliberately): install, sign, boot and gate on the box — that is the owner's reboot and step 2 to 8 of the runbook; the fan-EC module (its source lives only on the box); throughput re-measurement on the new kernel.
🤖 Generated with Claude Code