Skip to content

docs/kernel: the box runs 7.4.0-rc1-1bit, and neither image was clang-built - #1121

Merged
bong-water-water-bong merged 2 commits into
mainfrom
1bit/kernel-runs-today
Nov 5, 2026
Merged

bong-water-water-bong merged 2 commits into
mainfrom
1bit/kernel-runs-today

Conversation

@bong-water-water-bong

Copy link
Copy Markdown
Collaborator

docs/kernel.md opens with two present-tense claims about this box. Both are measurable, and both were
wrong; every dated 7.3 citation on this page (the A/B table, the huge-kernel rows, the historical measurements)
is left exactly as it is.

1. The box does not run 7.3 any more

- **Runs today:** 7.3.0-rc4-1bit-perfopt — Linux v7.3-rc4 plus two backports …

Measured: uname -r → 7.4.0-rc1-1bit, and the box has booted it since 2026-11-04 05:45 (six boots,
/boot/vmlinuz-7.4.0-rc1-1bit). PerfOpt is present in it, measured rather than assumed — this boot prints
amdgpu 0000:c5:00.0: AMD-Vi: PerfOpt armed on IOMMU0.

2. Neither image was built with clang — this is the more interesting one

The page asserts built with clang (LLVM=1) in the intro and CONFIG_CC_IS_CLANG=y in the config of record
bullet, and the recipe below is export LLVM=1; make LLVM=1 … bindeb-pkg. The running kernel contradicts it
three independent ways:

source says
/boot/config-$(uname -r) — the file the page itself names as the config of record CONFIG_CC_IS_GCC=y, CONFIG_GCC_VERSION=150200, CONFIG_CLANG_VERSION=0
/proc/config.gz (embedded in the running image) CONFIG_CC_IS_GCC=y
the kernel's own version line Linux version 7.4.0-rc1-1bit (bcloud@strixhalo) (gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0, GNU ld …)

The 7.3.0-rc4-1bit-perfopt+ image it replaced reports the same three ways, so this is not a regression introduced
by 7.4 — the kernels this box has booted were gcc builds while the page documents a clang build. That is
exactly the failure mode the page already warns about ("a gcc-only host silently builds the wrong compiler unless
LLVM=1 is exported"), so the warning is right and the images are the evidence for it.

I am not deciding which side should change. Rebuilding with clang and updating the recipe to record gcc are both
plausible answers, they have different consequences (the 7.3 A/B in this page was taken on a clang-built kernel),
and it is the kernel lane's call. This PR makes the page stop asserting something its own config-of-record file
contradicts, and states the measurement so that lane can act on it.

Verification

tools/copyright.py --check rc 0; site build 55 pages rc 0; rendered kernel.html carries 7.4.0-rc1-1bit,
CONFIG_CC_IS_GCC=y, GCC_VERSION=150200 and the PerfOpt line, one <h1>. Docs only, one file, no behaviour
change. Also checked and deliberately not touched: docs/hybrid.md:211 and docs/hrx.md:698 name the 7.3
kernel as the measurement context of a past verdict ("the hardware/firmware pair this verdict is for", "the
2026-10-31 A/B"), which is history and stays correct.

@bong-water-water-bong bong-water-water-bong added the documentation Improvements or additions to documentation label Nov 5, 2026
…-built

Two present-tense claims on this page were measurable and both were wrong:

- 'Runs today: 7.3.0-rc4-1bit-perfopt' -- the box has booted 7.4.0-rc1-1bit since
  2026-11-04 05:45 (six boots, /boot/vmlinuz-7.4.0-rc1-1bit), and PerfOpt is in it:
  the boot prints 'AMD-Vi: PerfOpt armed on IOMMU0'.
- 'built with clang (LLVM=1)' and 'CONFIG_CC_IS_CLANG=y' -- the running kernel's own
  config says CONFIG_CC_IS_GCC=y, CONFIG_GCC_VERSION=150200, CONFIG_CLANG_VERSION=0,
  /proc/config.gz agrees, and so does its version line (gcc (Ubuntu 15.2.0-16ubuntu1)).
  The 7.3 image it replaced reports the same three ways. So the LLVM=1 recipe is not
  what built the kernels this box has booted, which is the failure the page itself
  warns about.

Records the measurement and stops there: whether the recipe or the images change is the
kernel lane's decision. The 7.3 A/B table and every dated 7.3 citation elsewhere stay as
history.
@bong-water-water-bong

Copy link
Copy Markdown
Collaborator Author

#1121 ready for review at c73115c — docs only, one file (+20/−7), tools/copyright.py --check rc 0, site 55 pages rc 0.

Two measurable present-tense claims on the kernel runbook's first bullets:

  1. Runs today: 7.3.0-rc4-1bit-perfopt is stale — uname -r is 7.4.0-rc1-1bit, booted since 2026-11-04 05:45 (six boots), and PerfOpt is present in it: this boot prints AMD-Vi: PerfOpt armed on IOMMU0.
  2. CONFIG_CC_IS_CLANG=y / "built with clang (LLVM=1)" is contradicted by the file the page names as the config of record — /boot/config-$(uname -r) says CONFIG_CC_IS_GCC=y, CONFIG_GCC_VERSION=150200, CONFIG_CLANG_VERSION=0; /proc/config.gz says the same; and so does the kernel's own version line (gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0). The 7.3 image it replaced reports the same three ways, so it is not a 7.4 regression.

That second one is the page's own warning coming true ("a gcc-only host silently builds the wrong compiler unless LLVM=1 is exported"), so the PR records the measurement and stops — whether to rebuild with clang or to correct the recipe to gcc is the kernel lane's call, and it has consequences for the 7.3 A/B measured on a clang-built kernel.

Deliberately untouched: every dated 7.3 citation (docs/hybrid.md:211, docs/hrx.md:698, the Puppy eval rows) names the kernel as the measurement context of a past verdict and is history.

BEHIND is benign (branch is origin/main + 1 commit). Note one process mistake I made and corrected: the first push of this commit went to #1112's branch by accident; that branch is force-pushed back to b4069ad and this PR now carries only c73115c (+20/−7, 1 file).

@bong-water-water-bong bong-water-water-bong left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: READY at c73115c4 — docs only, and I checked its two factual claims against the running kernel rather than reading them.

$ uname -r                                          -> 7.4.0-rc1-1bit
$ (zcat /proc/config.gz) | grep CONFIG_CC_IS_ /CONFIG_GCC_VERSION /CONFIG_CLANG_VERSION
  CONFIG_CC_IS_GCC=y
  CONFIG_GCC_VERSION=150200
  CONFIG_CLANG_VERSION=0
$ ls /proc/config.gz                                 -> present

So both claims hold: this box runs 7.4.0-rc1-1bit, and the page's own correction is right — the kernel was not built with LLVM=1/clang; it is gcc 15.2.0, with CONFIG_CLANG_VERSION=0. A page that tells the next person to rebuild with LLVM=1 when neither image was built that way is exactly the kind of documentation that costs a day, and the doc now says so in as many words ("the LLVM=1 recipe below is not what built the kernels this box has booted").

That is the right shape of correction: it keeps the 7.3 A/B measurement as the motivation for the backports (it is still evidence) and marks it as history, while stating what the box actually has.

Nothing to run — one doc file, +20/−7.

@bong-water-water-bong
bong-water-water-bong merged commit 8036f1e into main Nov 5, 2026
8 of 9 checks passed
@bong-water-water-bong
bong-water-water-bong deleted the 1bit/kernel-runs-today branch November 5, 2026 15:59
@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown

Preparing review...

bong-water-water-bong added a commit that referenced this pull request Nov 5, 2026
The box, the stick and the release image all run Linux v7.4-rc1 (7.4.0-rc1-1bit)
since 2026-11-04, where the IOMMU PerfOpt series is upstream instead of carried as
two backports. docs/kernel.md gained only the Runs today bullet (#1121); the rest of
the current-state statements still said 7.3, so a reader would take the old pin as
today's.

- kernel.md: a 7.4 section — PerfOpt upstream, the BTF config and the BPF-object boot
  noise it removes, gcc 15.2 (not clang), the 7.4-only throughput arm and why it is
  not a delta, and the two watched issues (NVMe IO_PAGE_FAULT under block I/O, the MES
  REMOVE_QUEUE reset that is also recorded on 7.3).
- releases.md, os-v3.md, architecture.md, PORTING.md: the image/layout/pinned-source
  rows move to 7.4-rc1; os-v3.md's dated 11-01 measurement table stays as the record
  with one line saying what runs today.
- os/v3/puppy: the huge-kernel and config-fragment comments describe the current
  build, so they name 7.4.0-rc1-1bit (the =m values they rely on were re-measured in
  /boot/config-7.4.0-rc1-1bit).

Historical records are untouched: the dated PerfOpt A/B table, the 11-01/11-02 Puppy
eval log, KNOWN-ISSUES' 2026-10-22 update and the blog posts.

Co-authored-by: bong-water-water-bong <bong-water-water-bong@1bit.gg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant