Skip to content

docs: the current-state kernel rows are 7.4.0-rc1-1bit, not 7.3 - #1139

Merged
bong-water-water-bong merged 2 commits into
mainfrom
docs/74-current-state-20261105
Nov 5, 2026
Merged

bong-water-water-bong merged 2 commits into
mainfrom
docs/74-current-state-20261105

Conversation

@bong-water-water-bong

Copy link
Copy Markdown
Collaborator

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 had only the Runs today bullet moved (#1121); every other current-state statement still said 7.3, so a reader took the old pin as today's.

Root cause: the 7.4 move was recorded in one place (kernel.md's intro) instead of swept, so the same fact lives in seven files and one of them was updated.

What moves (current-state only):

file row was now
docs/kernel.md new section "7.4 on the box" — PerfOpt upstream, CONFIG_DEBUG_INFO_BTF=y and the bpf-restrict-fs boot noise it removes, gcc 15.2 (not clang), the 7.4-only throughput arm, the two watched issues
docs/releases.md kernel in the image 7.3.0-rc4-1bit-perfopt 7.4.0-rc1-1bit
docs/os-v3.md install screen row 4, the CONFIG_EFIVAR_FS=m measurement path, the What is measured now preamble vmlinuz-7.3.0-rc4-1bit-perfopt+ vmlinuz-7.4.0-rc1-1bit, plus one line saying what runs today
docs/architecture.md "The kernel" v7.3-rc4 plus the PerfOpt backports v7.4-rc1, plain upstream
docs/PORTING.md kernel row v7.3-rc4 built into debs upstream tags, v7.4-rc1 today
os/v3/puppy/mk-huge-kernel.sh, kernel-puppy.fragment build comments 7.3.0-rc4-1bit-perfopt+ 7.4.0-rc1-1bit

Measured, not assumed: the two =m facts the Puppy fragment depends on were re-read from the booted kernel's /boot/config-7.4.0-rc1-1bit — CONFIG_EFIVAR_FS=m, and SCSI/SCSI_MOD/SCSI_COMMON/CDROM/ATA/SATA_AHCI all still =m, so the fragment's rationale is unchanged on 7.4.

Deliberately untouched (historical records): the dated PerfOpt A/B table in kernel.md, the 2026-11-01/02 Puppy eval log, KNOWN-ISSUES.md's 2026-10-22 update, docs/hrx.md's dated A/B and the blog posts.

Honest limit of the throughput line: the 7.3 arm of the current recipe cannot be taken from inside a 7.4 boot, so the page publishes the 7.4 arm with its power profile, says it is not comparable to the older table, and claims no delta.

No NPU driver or kernel-perf internals are described; the out-of-tree driver is named the way the page already named it.

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.

@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 — every claim that is checkable off this box checks out, and the script edits are comments

The point of the PR is that the current-state rows must match what runs, so I checked them against the running kernel rather than against the other docs:

uname -r                                       7.4.0-rc1-1bit
/boot/config-7.4.0-rc1-1bit  CONFIG_DEBUG_INFO_BTF=y      (claim: "with CONFIG_DEBUG_INFO_BTF=y")
CONFIG_CC_IS_GCC=y  CONFIG_GCC_VERSION=150200  CONFIG_CC_IS_CLANG absent   (claim: gcc 15.2.0, not clang)
/sys/kernel/btf/vmlinux                        5,207,562 B = 4.97 MiB     (claim: "~5 MiB of BTF")
pahole --version                               v1.31                      (claim: "pahole 1.31")
journalctl -k -b   amdgpu 0000:c5:00.0: AMD-Vi: PerfOpt armed on IOMMU0   (claim: still armed, upstream)
journalctl -k -b   systemd[1]: bpf-restrict-fs: LSM BPF program attached   (claim: the "Failed to load BPF
                                                                            object" noise is gone)
journalctl -k -b   nvme 0000:c4:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT]  (the watched issue, three times in
                                                                            this boot alone — it is not theoretical)

The two files under os/v3/puppy/ are comment-only. Filtering the diff to added/removed lines that are not # comments leaves nothing, so the huge-kernel script and the config fragment only gained the current version name — no build step changed. That is the thing to check in a "docs" PR that touches a build script, and it is clean.

The one claim I cannot re-derive is the throughput arm (pp512 239.6, pp2048 234.7, tg128 10.9 at the 90/90/105 W fan curve). It is the lane's measurement, it is labelled as 7.4-arm-only with an explicit statement that no 7.3-vs-7.4 delta is claimed because the 7.3 arm needs its own grub-reboot window — which is the honest way to report a number you cannot compare. I took no GPU ticket for it.

The page's own discipline is worth noting: os-v3.md's dated 2026-11-01 table stays as the record with one line saying what runs today, and the history (PerfOpt A/B table, eval log, KNOWN-ISSUES update, blog posts) is untouched. That is the right split, and it is the reason a reader can still date the older numbers.

@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

1121 - Partially compliant

Compliant requirements:

  • The docs/kernel.md file has been updated to reflect that the box runs Linux v7.4.0-rc1-1bit
  • The docs/kernel.md file has been updated to reflect that the kernel was built with gcc instead of clang
  • The docs/kernel.md file has been updated to reflect that the kernel is now upstream with PerfOpt series instead of backported
  • All references to the old kernel version have been updated to the new one in docs/kernel.md

Non-compliant requirements:

  • None

Requires further human verification:

  • None

74 - Partially compliant

Compliant requirements:

  • README has been updated with a line acknowledging FastFlowLM
  • NOTICE has been updated with a row acknowledging FastFlowLM

Non-compliant requirements:

  • None

Requires further human verification:

  • None
⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Kernel Version Mismatch

The documentation states that the kernel version is 7.4.0-rc1-1bit, which aligns with the actual running kernel as per uname -r. However, the documentation previously claimed the kernel was built with clang, which contradicts the actual kernel configuration (CONFIG_CC_IS_GCC=y). This issue is resolved by updating the documentation to accurately reflect that the kernel is built with gcc.

## 7.4 on the box: what changed, and what to watch

`v7.4-rc1` is the first tag where the **PerfOpt series is upstream** (`iommu/amd` plus the `amdgpu`
identity-domain enable), so nothing is carried: the tree is the plain tag, and the boot still reports
`AMD-Vi: PerfOpt armed on IOMMU0`. Built from the same config with `CONFIG_DEBUG_INFO_BTF=y`
(pahole 1.31, ~5 MiB of BTF in the image), which is also why the `bpf-restrict-fs: Failed to load BPF
object` boot noise is gone — systemd now logs `LSM BPF program attached`. Compiler is **gcc 15.2.0**,
the same as the 7.3 image; older notes that say clang were wrong.
Outdated Kernel Reference

The release notes still refer to the old kernel version 7.3.0-rc4-1bit-perfopt. This should be updated to 7.4.0-rc1-1bit to accurately reflect the current state of the system.

| kernel in the image | `7.4.0-rc1-1bit` (Linux `v7.4-rc1`, IOMMU PerfOpt upstream, MOK-signed) |

@bong-water-water-bong
bong-water-water-bong merged commit 7ad3425 into main Nov 5, 2026
9 checks passed
@bong-water-water-bong
bong-water-water-bong deleted the docs/74-current-state-20261105 branch November 5, 2026 20:44
bong-water-water-bong pushed a commit that referenced this pull request Nov 5, 2026
…trings

One conflict, docs/PORTING.md's kernel row, which is #1139's: kept its version
facts ("upstream tags built into Debian packages - v7.4-rc1 today, v7.3-rc4
before it") and restored this PR's tail naming which os/ target takes which
kernel (the Puppy appliance's woof-CE package vs the os/mini CI image's
KVER=/VMLINUZ=), since neither side carried both.

The three other files main touched among this PR's eleven (docs/kernel.md,
docs/os-v3.md, docs/releases.md) auto-merged with both sides intact. pi-os3's
ac2f80b (os-v3-live-puppy-eval) is untouched by the merge and still on the tip.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant