Skip to content

rk boot: boot arm64 under TCG with arm64.nomops - #182

Merged
tamnd merged 1 commit into
mainfrom
a64-nomops
Oct 26, 2026
Merged

tamnd merged 1 commit into
mainfrom
a64-nomops

Conversation

@tamnd

@tamnd tamnd commented Oct 26, 2026

Copy link
Copy Markdown
Owner

On the 7.3 A64 defconfig nightly 40256184683 the rucc kernel panicked in the kunit run. It stopped in __memset in module_memory_alloc when it loaded crypto/crypto_engine.ko. The SETM instruction wrote the page after the end of the module area, with no bytes left to set, and the kernel took a paging fault there.

The same nightly shows that the fault is not the compiler's. In the rk cross-modules boots, the gcc-14 kernel with its own modules took the same fault in __memset when it loaded crypto/deflate.ko. The rk mixed run 40264473995 got the fault again in the rucc kernel, at a different module. The likely cause is the FEAT_MOPS emulation of QEMU 8.2 under TCG.

This change adds arm64.nomops to the kernel command line of every arm64 boot under TCG. The kernel then sets and copies memory with its own loops, on both kernels. Boots under KVM do not change.

The A64 nightly 40268266012 runs on this branch to show that the fault is gone. I will merge after it passes.

Part of #109.

@tamnd tamnd added kind/bug Something in the harness is wrong area/boot QEMU rig, initramfs and rk-init row/a64 arm64 labels Oct 26, 2026
@tamnd
tamnd merged commit fd58338 into main Oct 26, 2026
17 checks passed
@tamnd
tamnd deleted the a64-nomops branch October 26, 2026 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/boot QEMU rig, initramfs and rk-init kind/bug Something in the harness is wrong row/a64 arm64

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant