Repository navigation
docs/kernel: the box runs 7.4.0-rc1-1bit, and neither image was clang-built - #1121
Conversation
…-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.
cbe6173 to
c73115c
Compare
|
#1121 ready for review at Two measurable present-tense claims on the kernel runbook's first bullets:
That second one is the page's own warning coming true ("a gcc-only host silently builds the wrong compiler unless Deliberately untouched: every dated 7.3 citation (
|
bong-water-water-bong
left a comment
There was a problem hiding this comment.
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.
|
Preparing review... |
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>
docs/kernel.mdopens with two present-tense claims about this box. Both are measurable, and both werewrong; 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
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 printsamdgpu 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 andCONFIG_CC_IS_CLANG=yin the config of recordbullet, and the recipe below is
export LLVM=1; make LLVM=1 … bindeb-pkg. The running kernel contradicts itthree independent ways:
/boot/config-$(uname -r)— the file the page itself names as the config of recordCONFIG_CC_IS_GCC=y,CONFIG_GCC_VERSION=150200,CONFIG_CLANG_VERSION=0/proc/config.gz(embedded in the running image)CONFIG_CC_IS_GCC=yLinux 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 introducedby 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=1is 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 --checkrc 0; site build 55 pages rc 0; renderedkernel.htmlcarries7.4.0-rc1-1bit,CONFIG_CC_IS_GCC=y,GCC_VERSION=150200and the PerfOpt line, one<h1>. Docs only, one file, no behaviourchange. Also checked and deliberately not touched:
docs/hybrid.md:211anddocs/hrx.md:698name the 7.3kernel 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.