* -next boot failures during KVM setup
@ 2026-06-08 19:19 Mark Brown
2026-06-08 20:18 ` Marc Zyngier
0 siblings, 1 reply; 3+ messages in thread
From: Mark Brown @ 2026-06-08 19:19 UTC (permalink / raw)
To: Marc Zyngier, Oliver Upton; +Cc: Aishwarya.TCV, linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 1413 bytes --]
I'm seeing boot failures on a range of physical arm64 platforms in
today's -next. Turning on earlycon it looks like we're getting bad
pointer dereferences during KVM initialisation:
[ 0.728923] kvm [1]: nv: 570 coarse grained trap handlers
[ 0.735138] kvm [1]: nv: 710 fine grained trap handlers
[ 0.741326] kvm [1]: IPA Size Limit: 40 bits
[ 0.748840] Unable to handle kernel paging request at virtual address ffff00000478e000
[ 0.757027] Mem abort info:
[ 0.759917] ESR = 0x0000000096000147
[ 0.763772] EC = 0x25: DABT (current EL), IL = 32 bits
[ 0.851526] pc : dcache_clean_inval_poc+0x24/0x48
[ 0.856367] lr : kvm_arm_init+0xbb0/0x13f0
...
[ 0.937120] Call trace:
[ 0.939628] dcache_clean_inval_poc+0x24/0x48 (P)
[ 0.944457] do_one_initcall+0x60/0x1d4
[ 0.948393] kernel_init_freeable+0x250/0x2d8
https://lava.sirena.org.uk/scheduler/job/2849583#L848
(with other platforms I've got earlycon logs showing basically the same
thing). I have some bisects but they seem to have been confused by
earlier driver core issues, I've tweaked to try to avoid that and am
retrying. FVP and qemu seem unaffected:
https://lava.sirena.org.uk/scheduler/job/2848374#L888
https://lava.sirena.org.uk/scheduler/job/2848966#L447
The affected platforms thus far are all SMP Cortex A53/5 systems, but
that's the vast majority of my lab. They have both GICv3 and GICv2.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: -next boot failures during KVM setup
2026-06-08 19:19 -next boot failures during KVM setup Mark Brown
@ 2026-06-08 20:18 ` Marc Zyngier
2026-06-08 20:56 ` Ard Biesheuvel
0 siblings, 1 reply; 3+ messages in thread
From: Marc Zyngier @ 2026-06-08 20:18 UTC (permalink / raw)
To: Mark Brown, Will Deacon, Catalin Marinas, Ard Biesheuvel
Cc: Oliver Upton, Aishwarya.TCV, linux-arm-kernel
[+ Will, Catalin, Ard]
On Mon, 08 Jun 2026 20:19:37 +0100,
Mark Brown <broonie@kernel.org> wrote:
>
> I'm seeing boot failures on a range of physical arm64 platforms in
> today's -next. Turning on earlycon it looks like we're getting bad
> pointer dereferences during KVM initialisation:
>
> [ 0.728923] kvm [1]: nv: 570 coarse grained trap handlers
> [ 0.735138] kvm [1]: nv: 710 fine grained trap handlers
> [ 0.741326] kvm [1]: IPA Size Limit: 40 bits
> [ 0.748840] Unable to handle kernel paging request at virtual address ffff00000478e000
That really doesn't look like a duff pointer.
> [ 0.757027] Mem abort info:
> [ 0.759917] ESR = 0x0000000096000147
Translation fault, level 3. My take is that something is getting
unmapped.
> [ 0.763772] EC = 0x25: DABT (current EL), IL = 32 bits
> [ 0.851526] pc : dcache_clean_inval_poc+0x24/0x48
> [ 0.856367] lr : kvm_arm_init+0xbb0/0x13f0
> ...
>
> [ 0.937120] Call trace:
> [ 0.939628] dcache_clean_inval_poc+0x24/0x48 (P)
> [ 0.944457] do_one_initcall+0x60/0x1d4
> [ 0.948393] kernel_init_freeable+0x250/0x2d8
>
> https://lava.sirena.org.uk/scheduler/job/2849583#L848
>
> (with other platforms I've got earlycon logs showing basically the same
> thing). I have some bisects but they seem to have been confused by
> earlier driver core issues, I've tweaked to try to avoid that and am
> retrying. FVP and qemu seem unaffected:
>
> https://lava.sirena.org.uk/scheduler/job/2848374#L888
> https://lava.sirena.org.uk/scheduler/job/2848966#L447
>
> The affected platforms thus far are all SMP Cortex A53/5 systems, but
> that's the vast majority of my lab. They have both GICv3 and GICv2.
I've reproduced with -next on an A72 platform. But it doesn't happen
with kvmarm/next on its own. So it is likely something coming from
another tree that messes up with CMOs, or .
The stack trace here is slightly better:
[ 0.099138] Unable to handle kernel paging request at virtual address ffff0023d9ead000
[ 0.099141] Mem abort info:
[ 0.099142] ESR = 0x0000000096000147
[ 0.099144] EC = 0x25: DABT (current EL), IL = 32 bits
[ 0.099146] SET = 0, FnV = 0
[ 0.099148] EA = 0, S1PTW = 0
[ 0.099150] FSC = 0x07: level 3 translation fault
[ 0.099151] Data abort info:
[ 0.099153] ISV = 0, ISS = 0x00000147, ISS2 = 0x00000000
[ 0.099155] CM = 1, WnR = 1, TnD = 0, TagAccess = 0
[ 0.099157] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[ 0.099159] swapper pgtable: 4k pages, 48-bit VAs, pgdp=000000245983b000
[ 0.099162] [ffff0023d9ead000] pgd=18000027fffff403, p4d=18000027fffff403, pud=18000027ffffe403, pmd=18000027fffed403, pte=00e8002459eadf06
[ 0.099173] Internal error: Oops: 0000000096000147 [#1] SMP
[ 0.582137] Freeing initrd memory: 29068K
[ 2.025400] Modules linked in:
[ 2.028447] CPU: 2 UID: 0 PID: 1 Comm: swapper/0 Not tainted 7.1.0-rc7-next-20260608 #6265 PREEMPT
[ 2.037482] Hardware name: SolidRun Ltd. SolidRun CEX7 Platform, BIOS EDK II May 30 2024
[ 2.045559] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 2.052510] pc : dcache_clean_inval_poc+0x24/0x48
[ 2.057210] lr : kvm_hyp_init_symbols+0x370/0x388
[ 2.061904] sp : ffff80008009bd00
[ 2.065206] x29: ffff80008009bd00 x28: 0000000000000000 x27: 0000002022116000
[ 2.072332] x26: ffff0020232967f0 x25: 00000020a2116000 x24: 00000000000038b0
[ 2.079458] x23: 0000000000000030 x22: ffffc7dc575880c8 x21: ffffc7dc57948fb0
[ 2.086584] x20: 0000000000000001 x19: 0000000001002222 x18: 00000000ffffffff
[ 2.093709] x17: 000000007a3345b6 x16: 0000000073a611dd x15: 0000000000000000
[ 2.100835] x14: 0000000000000000 x13: 0000000000000000 x12: fffffffffffff800
[ 2.107960] x11: 00000000000007ff x10: 0000000000000000 x9 : fffffffffffff800
[ 2.115086] x8 : 00000000000007ff x7 : 0000000000000000 x6 : ffffc7dc5740af58
[ 2.122211] x5 : 0000000080000000 x4 : ffffc7b87de00000 x3 : 000000000000003f
[ 2.129336] x2 : 0000000000000040 x1 : ffff0023d9eaf000 x0 : ffff0023d9ead000
[ 2.136462] Call trace:
[ 2.138896] dcache_clean_inval_poc+0x24/0x48 (P)
[ 2.143592] init_hyp_mode+0x644/0x960
[ 2.147333] kvm_arm_init+0x128/0x280
[ 2.150987] do_one_initcall+0x4c/0x458
[ 2.154813] kernel_init_freeable+0x1f4/0x2a0
[ 2.159161] kernel_init+0x2c/0x150
[ 2.162642] ret_from_fork+0x10/0x20
[ 2.166210] Code: 9ac32042 d1000443 8a230000 d503201f (d50b7e20)
[ 2.172292] ---[ end trace 0000000000000000 ]---
[ 2.176958] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 2.184608] SMP: stopping secondary CPUs
[ 2.188523] Kernel Offset: 0x47dbd5dc0000 from 0xffff800080000000
[ 2.194604] PHYS_OFFSET: 0x80000000
[ 2.198080] CPU features: 0x04000000,804b0008,00040001,0400421b
[ 2.203988] Memory Limit: none
[ 2.207031] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---
This points to the following code in kvm_hyp_init_symbols():
<quote>
/*
* Flush entire BSS since part of its data containing init symbols is read
* while the MMU is off.
*/
kvm_flush_dcache_to_poc(kvm_ksym_ref(__hyp_bss_start),
kvm_ksym_ref(__hyp_bss_end) - kvm_ksym_ref(__hyp_bss_start))
</quote>
which I suspect is related to some of the new BSS related code in
arm64/for-next/mm.
Ard, does this ring a bell?
Thanks,
M.
--
Jazz isn't dead. It just smells funny.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: -next boot failures during KVM setup
2026-06-08 20:18 ` Marc Zyngier
@ 2026-06-08 20:56 ` Ard Biesheuvel
0 siblings, 0 replies; 3+ messages in thread
From: Ard Biesheuvel @ 2026-06-08 20:56 UTC (permalink / raw)
To: Marc Zyngier, Mark Brown, Will Deacon, Catalin Marinas
Cc: Oliver Upton, Aishwarya.TCV, linux-arm-kernel
On Mon, 8 Jun 2026, at 22:18, Marc Zyngier wrote:
> [+ Will, Catalin, Ard]
>
> On Mon, 08 Jun 2026 20:19:37 +0100,
> Mark Brown <broonie@kernel.org> wrote:
>>
>> I'm seeing boot failures on a range of physical arm64 platforms in
>> today's -next. Turning on earlycon it looks like we're getting bad
>> pointer dereferences during KVM initialisation:
>>
>> [ 0.728923] kvm [1]: nv: 570 coarse grained trap handlers
>> [ 0.735138] kvm [1]: nv: 710 fine grained trap handlers
>> [ 0.741326] kvm [1]: IPA Size Limit: 40 bits
>> [ 0.748840] Unable to handle kernel paging request at virtual address ffff00000478e000
>
> That really doesn't look like a duff pointer.
>
>> [ 0.757027] Mem abort info:
>> [ 0.759917] ESR = 0x0000000096000147
>
> Translation fault, level 3. My take is that something is getting
> unmapped.
>
...
> I've reproduced with -next on an A72 platform. But it doesn't happen
> with kvmarm/next on its own. So it is likely something coming from
> another tree that messes up with CMOs, or .
>
> The stack trace here is slightly better:
>
> [ 0.099138] Unable to handle kernel paging request at virtual
> address ffff0023d9ead000
...
> [ 2.136462] Call trace:
> [ 2.138896] dcache_clean_inval_poc+0x24/0x48 (P)
> [ 2.143592] init_hyp_mode+0x644/0x960
> [ 2.147333] kvm_arm_init+0x128/0x280
> [ 2.150987] do_one_initcall+0x4c/0x458
> [ 2.154813] kernel_init_freeable+0x1f4/0x2a0
> [ 2.159161] kernel_init+0x2c/0x150
> [ 2.162642] ret_from_fork+0x10/0x20
> [ 2.166210] Code: 9ac32042 d1000443 8a230000 d503201f (d50b7e20)
> [ 2.172292] ---[ end trace 0000000000000000 ]---
> [ 2.176958] Kernel panic - not syncing: Attempted to kill init!
> exitcode=0x0000000b
> [ 2.184608] SMP: stopping secondary CPUs
> [ 2.188523] Kernel Offset: 0x47dbd5dc0000 from 0xffff800080000000
> [ 2.194604] PHYS_OFFSET: 0x80000000
> [ 2.198080] CPU features: 0x04000000,804b0008,00040001,0400421b
> [ 2.203988] Memory Limit: none
> [ 2.207031] ---[ end Kernel panic - not syncing: Attempted to kill
> init! exitcode=0x0000000b ]---
>
> This points to the following code in kvm_hyp_init_symbols():
>
> <quote>
> /*
> * Flush entire BSS since part of its data containing init symbols is read
> * while the MMU is off.
> */
> kvm_flush_dcache_to_poc(kvm_ksym_ref(__hyp_bss_start),
> kvm_ksym_ref(__hyp_bss_end) - kvm_ksym_ref(__hyp_bss_start))
>
> </quote>
>
> which I suspect is related to some of the new BSS related code in
> arm64/for-next/mm.
>
> Ard, does this ring a bell?
>
Haven't seen this myself, surprisingly, but yeah, this is obviously related.
By now, I am wondering if unmapping that region entirely is really worth the
hassle, or whether we'd be better off just remapping it read-only.
Given we're at -rc7, I'd lean towards dropping the whole branch for now, or
alternatively, only drop/revert "arm64: mm: Unmap kernel data/bss entirely from the
linear map" (and its followup fix "arm64: mm: Defer remap of linear alias of
data/bss") so that the region always remains readable via the linear map.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-06-08 20:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-08 19:19 -next boot failures during KVM setup Mark Brown
2026-06-08 20:18 ` Marc Zyngier
2026-06-08 20:56 ` Ard Biesheuvel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox