2022-07-14 07:52:47

by Naresh Kamboju

[permalink] [raw]
Subject: [next] Kernel panic - not syncing: swiotlb_init_remap: nslabs = 0 too small

[Please ignore this email if it is already reported]

Linux next-20220713 boot failed on arm, arm64, x86_64 and i386 [1].

Reported-by: Linux Kernel Functional Testing <[email protected]>
Reported-by: Naresh Kamboju <[email protected]>

metadata:
git_ref: master
git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next
git_sha: 4662b7adea50bb62e993a67f611f3be625d3df0d
git_describe: next-20220713
kernel_version: 5.19.0-rc6
kernel-config: https://builds.tuxbuild.com/2BtFIR2DegCrbRCCTSZF93YVeiO/config
build-url: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next/-/pipelines/586982028
artifact-location: https://builds.tuxbuild.com/2BtFIR2DegCrbRCCTSZF93YVeiO
vmlinux.xz: https://builds.tuxbuild.com/2BtFIR2DegCrbRCCTSZF93YVeiO/vmlinux.xz
System.map: https://builds.tuxbuild.com/2BtFIR2DegCrbRCCTSZF93YVeiO/System.map
toolchain: gcc-11

Here is the boot log output from arm64 juno-r2 device.

[ 0.000000] Booting Linux on physical CPU 0x0000000100 [0x410fd033]
[ 0.000000] Linux version 5.19.0-rc6-next-20220713
(tuxmake@tuxmake) (aarch64-linux-gnu-gcc (Debian 11.3.0-3) 11.3.0, GNU
ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT @1657717522
[ 0.000000] Machine model: ARM Juno development board (r2)
[ 0.000000] earlycon: pl11 at MMIO 0x000000007ff80000 (options '')
[ 0.000000] printk: bootconsole [pl11] enabled
[ 0.000000] efi: UEFI not found.
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem
0x0000000080000000-0x00000009ffffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x9fefd1b40-0x9fefd3fff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal [mem 0x0000000100000000-0x00000009ffffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000080000000-0x00000000feffffff]
[ 0.000000] node 0: [mem 0x0000000880000000-0x00000009ffffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000009ffffffff]
[ 0.000000] On node 0, zone Normal: 4096 pages in unavailable ranges
[ 0.000000] cma: Reserved 32 MiB at 0x00000000fd000000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: Trusted OS migration not required
[ 0.000000] psci: SMC Calling Convention v1.0
[ 0.000000] percpu: Embedded 30 pages/cpu s82856 r8192 d31832 u122880
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: ARM erratum 843419
[ 0.000000] CPU features: detected: ARM erratum 845719
[ 0.000000] Fallback order for Node 0: 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 2060288
[ 0.000000] Policy zone: Normal
[ 0.000000] Kernel command line: console=ttyAMA0,115200n8
root=/dev/nfs rw
nfsroot=10.66.16.120:/var/lib/lava/dispatcher/tmp/5283518/extract-nfsrootfs-ulkeoqdy,tcp,hard,vers=3,wsize=65536
earlycon=pl011,0x7ff80000 console_msg_format=syslog earlycon
default_hugepagesz=2M hugepages=256
sky2.mac_address=0x00,0x02,0xF7,0x00,0x68,0x51 ip=dhcp
<6>[ 0.000000] Dentry cache hash table entries: 1048576 (order: 11,
8388608 bytes, linear)
<6>[ 0.000000] Inode-cache hash table entries: 524288 (order: 10,
4194304 bytes, linear)
<6>[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
<0>[ 0.000000] Kernel panic - not syncing: swiotlb_init_remap:
nslabs = 0 too small
<4>[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted
5.19.0-rc6-next-20220713 #1
<4>[ 0.000000] Hardware name: ARM Juno development board (r2) (DT)
<4>[ 0.000000] Call trace:
<4>[ 0.000000] dump_backtrace+0xe8/0x130
<4>[ 0.000000] show_stack+0x24/0x60
<4>[ 0.000000] dump_stack_lvl+0x8c/0xb8
<4>[ 0.000000] dump_stack+0x18/0x34
<4>[ 0.000000] panic+0x188/0x38c
<4>[ 0.000000] swiotlb_init_remap+0x50/0x54
<4>[ 0.000000] swiotlb_init+0x20/0x2c
<4>[ 0.000000] mem_init+0x38/0x48
<4>[ 0.000000] start_kernel+0x448/0x738
<4>[ 0.000000] __primary_switched+0xb8/0xc0
<0>[ 0.000000] ---[ end Kernel panic - not syncing:
swiotlb_init_remap: nslabs = 0 too small ]---

Full test log link,
[1] https://lkft.validation.linaro.org/scheduler/job/5283518#L582

Best regards
Naresh Kamboju


--
Linaro LKFT
https://lkft.linaro.org


2022-07-14 08:37:11

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [next] Kernel panic - not syncing: swiotlb_init_remap: nslabs = 0 too small

On Thu, Jul 14, 2022 at 01:50:02PM +0530, Anshuman Khandual wrote:
> 26ffb91fa5e0fb282e8 ("swiotlb: split up the global swiotlb lock")

This has been replace with 20347fca71a387a3751f7bb270062616ddc5317a
that should fix the issue.

2022-07-14 09:09:36

by Anshuman Khandual

[permalink] [raw]
Subject: Re: [next] Kernel panic - not syncing: swiotlb_init_remap: nslabs = 0 too small



On 7/14/22 13:17, Naresh Kamboju wrote:
> [Please ignore this email if it is already reported]
>
> Linux next-20220713 boot failed on arm, arm64, x86_64 and i386 [1].
>
> Reported-by: Linux Kernel Functional Testing <[email protected]>
> Reported-by: Naresh Kamboju <[email protected]>

There are couple of recent commits in swiotlb area, could you please check
reverting them, if that solves the problem.

26ffb91fa5e0fb282e8 ("swiotlb: split up the global swiotlb lock")
c51ba246cb172c9e947 ("swiotlb: fail map correctly with failed io_tlb_default_mem")

>
> metadata:
> git_ref: master
> git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next
> git_sha: 4662b7adea50bb62e993a67f611f3be625d3df0d
> git_describe: next-20220713
> kernel_version: 5.19.0-rc6
> kernel-config: https://builds.tuxbuild.com/2BtFIR2DegCrbRCCTSZF93YVeiO/config
> build-url: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next/-/pipelines/586982028
> artifact-location: https://builds.tuxbuild.com/2BtFIR2DegCrbRCCTSZF93YVeiO
> vmlinux.xz: https://builds.tuxbuild.com/2BtFIR2DegCrbRCCTSZF93YVeiO/vmlinux.xz
> System.map: https://builds.tuxbuild.com/2BtFIR2DegCrbRCCTSZF93YVeiO/System.map
> toolchain: gcc-11
>
> Here is the boot log output from arm64 juno-r2 device.
>
> [ 0.000000] Booting Linux on physical CPU 0x0000000100 [0x410fd033]
> [ 0.000000] Linux version 5.19.0-rc6-next-20220713
> (tuxmake@tuxmake) (aarch64-linux-gnu-gcc (Debian 11.3.0-3) 11.3.0, GNU
> ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT @1657717522
> [ 0.000000] Machine model: ARM Juno development board (r2)
> [ 0.000000] earlycon: pl11 at MMIO 0x000000007ff80000 (options '')
> [ 0.000000] printk: bootconsole [pl11] enabled
> [ 0.000000] efi: UEFI not found.
> [ 0.000000] NUMA: No NUMA configuration found
> [ 0.000000] NUMA: Faking a node at [mem
> 0x0000000080000000-0x00000009ffffffff]
> [ 0.000000] NUMA: NODE_DATA [mem 0x9fefd1b40-0x9fefd3fff]
> [ 0.000000] Zone ranges:
> [ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff]
> [ 0.000000] DMA32 empty
> [ 0.000000] Normal [mem 0x0000000100000000-0x00000009ffffffff]
> [ 0.000000] Movable zone start for each node
> [ 0.000000] Early memory node ranges
> [ 0.000000] node 0: [mem 0x0000000080000000-0x00000000feffffff]
> [ 0.000000] node 0: [mem 0x0000000880000000-0x00000009ffffffff]
> [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000009ffffffff]
> [ 0.000000] On node 0, zone Normal: 4096 pages in unavailable ranges
> [ 0.000000] cma: Reserved 32 MiB at 0x00000000fd000000
> [ 0.000000] psci: probing for conduit method from DT.
> [ 0.000000] psci: PSCIv1.1 detected in firmware.
> [ 0.000000] psci: Using standard PSCI v0.2 function IDs
> [ 0.000000] psci: Trusted OS migration not required
> [ 0.000000] psci: SMC Calling Convention v1.0
> [ 0.000000] percpu: Embedded 30 pages/cpu s82856 r8192 d31832 u122880
> [ 0.000000] Detected VIPT I-cache on CPU0
> [ 0.000000] CPU features: detected: ARM erratum 843419
> [ 0.000000] CPU features: detected: ARM erratum 845719
> [ 0.000000] Fallback order for Node 0: 0
> [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 2060288
> [ 0.000000] Policy zone: Normal
> [ 0.000000] Kernel command line: console=ttyAMA0,115200n8
> root=/dev/nfs rw
> nfsroot=10.66.16.120:/var/lib/lava/dispatcher/tmp/5283518/extract-nfsrootfs-ulkeoqdy,tcp,hard,vers=3,wsize=65536
> earlycon=pl011,0x7ff80000 console_msg_format=syslog earlycon
> default_hugepagesz=2M hugepages=256
> sky2.mac_address=0x00,0x02,0xF7,0x00,0x68,0x51 ip=dhcp
> <6>[ 0.000000] Dentry cache hash table entries: 1048576 (order: 11,
> 8388608 bytes, linear)
> <6>[ 0.000000] Inode-cache hash table entries: 524288 (order: 10,
> 4194304 bytes, linear)
> <6>[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
> <0>[ 0.000000] Kernel panic - not syncing: swiotlb_init_remap:
> nslabs = 0 too small
> <4>[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted
> 5.19.0-rc6-next-20220713 #1
> <4>[ 0.000000] Hardware name: ARM Juno development board (r2) (DT)
> <4>[ 0.000000] Call trace:
> <4>[ 0.000000] dump_backtrace+0xe8/0x130
> <4>[ 0.000000] show_stack+0x24/0x60
> <4>[ 0.000000] dump_stack_lvl+0x8c/0xb8
> <4>[ 0.000000] dump_stack+0x18/0x34
> <4>[ 0.000000] panic+0x188/0x38c
> <4>[ 0.000000] swiotlb_init_remap+0x50/0x54
> <4>[ 0.000000] swiotlb_init+0x20/0x2c
> <4>[ 0.000000] mem_init+0x38/0x48
> <4>[ 0.000000] start_kernel+0x448/0x738
> <4>[ 0.000000] __primary_switched+0xb8/0xc0
> <0>[ 0.000000] ---[ end Kernel panic - not syncing:
> swiotlb_init_remap: nslabs = 0 too small ]---
>
> Full test log link,
> [1] https://lkft.validation.linaro.org/scheduler/job/5283518#L582
>
> Best regards
> Naresh Kamboju
>
>
> --
> Linaro LKFT
> https://lkft.linaro.org

2022-07-14 11:52:04

by Naresh Kamboju

[permalink] [raw]
Subject: Re: [next] Kernel panic - not syncing: swiotlb_init_remap: nslabs = 0 too small

Hi Christoph and Anshuman,

On Thu, 14 Jul 2022 at 13:52, Christoph Hellwig <[email protected]> wrote:
>
> On Thu, Jul 14, 2022 at 01:50:02PM +0530, Anshuman Khandual wrote:
> > 26ffb91fa5e0fb282e8 ("swiotlb: split up the global swiotlb lock")
>
> This has been replace with 20347fca71a387a3751f7bb270062616ddc5317a
> that should fix the issue.

Thanks for your inputs.
As per your suggestion, I have reverted those two patches on Linux next tree
and built for arm64 and the boot test successfully.

467f49f87d84 Revert "swiotlb: split up the global swiotlb lock"
2706e93f7f8a Revert "swiotlb: fail map correctly with failed io_tlb_default_mem"

Boot pass log link,
https://lkft.validation.linaro.org/scheduler/job/5284375#L583

Best Regards
Naresh Kamboju

--
Linaro LKFT
https://lkft.linaro.org