[powerpc][next-20210625] Kernel warning(arch/powerpc/kernel/interrupt.c:518) during boot
Nicholas Piggin
npiggin at gmail.com
Sun Jun 27 20:06:07 AEST 2021
Excerpts from Nicholas Piggin's message of June 27, 2021 4:57 am:
> Excerpts from Sachin Sant's message of June 26, 2021 11:52 pm:
>> Following kernel warning is seen while booting 5.13.0-rc7-next-20210625
>> on POWER9 LPAR.
>>
>> [ 40.573592] ------------[ cut here ]------------
>> [ 40.573604] WARNING: CPU: 6 PID: 4743 at arch/powerpc/kernel/interrupt.c:518 interrupt_exit_kernel_prepare+0x280/0x2a0
>> [ 40.573614] Modules linked in: dm_mod bonding nft_ct nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set rfkill nf_tables libcrc32c nfnetlink sunrpc pseries_rng xts uio_pdrv_genirq uio vmx_crypto sch_fq_codel ip_tables ext4 mbcache jbd2 sd_mod t10_pi sg ibmvscsi ibmveth scsi_transport_srp fuse
>> [ 40.573649] CPU: 6 PID: 4743 Comm: dracut-install Not tainted 5.13.0-rc7-next-20210625 #1
>> [ 40.573655] NIP: c000000000032990 LR: c00000000000c958 CTR: 000000000048dd1c
>> [ 40.573660] REGS: c0000000414db640 TRAP: 0700 Not tainted (5.13.0-rc7-next-20210625)
>> [ 40.573664] MSR: 8000000000021033 <SF,ME,IR,DR,RI,LE> CR: 28044288 XER: 00000000
>> [ 40.573674] CFAR: c0000000000327a4 IRQMASK: 1
>> GPR00: c00000000000c958 c0000000414db8e0 c0000000029bbd00 c0000000414db9a0
>> GPR04: 8000000000001033 0000000000000093 0000000000000048 ffffffffffffffbf
>> GPR08: 0000000000000008 0000000000000000 0000000000000003 0000000000000010
>> GPR12: 0000000000004000 c000000005587a00 0000000101dc15a8 0000000101dc1590
>> GPR16: 0000000101dc05a8 00007fffc7abe353 00007fffb7926740 0000000000000000
>> GPR20: 00007fffc7ab7ae0 fffffffffffff000 0000000000000006 c000000043cbbc00
>> GPR24: 0000000000000000 000001003da495d0 0000000000000000 0000000000000000
>> GPR28: 0000000000000000 fcffffffffffffff 0000000000000000 c0000000414db9a0
>> [ 40.573725] NIP [c000000000032990] interrupt_exit_kernel_prepare+0x280/0x2a0
>> [ 40.573730] LR [c00000000000c958] interrupt_return_srr_user_restart+0x34/0x118
>
> BTW this isn't a restart but a kernel exit. I'll have to update labels
> to make this clear.
>
>> [ 40.573736] Call Trace:
>> [ 40.573738] [c0000000414db8e0] [c000000043cbbc00] 0xc000000043cbbc00 (unreliable)
>> [ 40.573744] [c0000000414db930] [c00000000000c958] interrupt_return_srr_user_restart+0x34/0x118
>> [ 40.573751] --- interrupt: 300 at strnlen_user+0x74/0x240
>> [ 40.573756] NIP: c00000000070ccf4 LR: c00000000048a460 CTR: 000000000003fffe
>> [ 40.573760] REGS: c0000000414db9a0 TRAP: 0300 Not tainted (5.13.0-rc7-next-20210625)
>> [ 40.573764] MSR: 8000000000001033 <SF,ME,IR,DR,RI,LE> CR: 48044228 XER: 20040000
>> [ 40.573774] CFAR: c00000000048a45c DAR: 000001003da495d0 DSISR: 40000000 IRQMASK: 0
>> GPR00: c00000000048a44c c0000000414dbc40 c0000000029bbd00 0000000000000000
>> GPR04: 0000000000200000 0000000000000030 c000000043cbbc00 000001003da495d0
>> GPR08: a8aaaaaaaaaaaaaa bcffffffffffffff 000001003da495d0 0000000000000000
>> GPR12: 0000000000004000 c000000005587a00 0000000101dc15a8 0000000101dc1590
>> GPR16: 0000000101dc05a8 00007fffc7abe353 00007fffb7926740 0000000000000000
>> GPR20: 00007fffc7ab7ae0 fffffffffffff000 0000000000000006 c000000043cbbc00
>> GPR24: 0000000000000000 000001003da495d0 0000000000000000 0000000000000000
>> GPR28: 0000000000000000 c000000043b6a000 c000000043cbbc00 0000000000000000
>> [ 40.573826] NIP [c00000000070ccf4] strnlen_user+0x74/0x240
>> [ 40.573830] LR [c00000000048a460] copy_strings.isra.42+0xb0/0x350
>
> So there's definitely IRQMASK=0 and no MSR[EE]=0 in this frame, which is
> what the warning was.
>
> I'd say either something hasn't set PACA_IRQ_HARD_DIS properly, so EE
> doesn't get enabled when irqs are restored, or maybe the change to
> arch_local_irq_restore(). Less likely that the stack got messed up.
>
> Can you try run with CONFIG_PPC_IRQ_SOFT_MASK_DEBUG=y ?
Nevermind, I think I've found the problem. Some code runs in the
implicit soft-mask region without expecting to be masked. Working
on a fix...
Thanks,
Nick
More information about the Linuxppc-dev
mailing list