arm64: WARNING: at mm/vmalloc.c:315 ioremap_page_range

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following warning was noticed while boot arm and arm64 devices.
The below log is extracted from arm64 ROCK Pi 4B while booting and
another issue is kernel oops noticed while testing selftests:  kvm:
memslot_perf_test.

1) WARNING: CPU: 1 PID: 201 at mm/vmalloc.c:315 ioremap_page_range
2)  Unable to handle kernel NULL pointer dereference at virtual address
  Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP
  Kernel panic - not syncing: Oops: Fatal exception in interrupt

Please find steps to reproduce, logs and config file links below.

Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>

Warning log:
-----------
[   21.074045] ------------[ cut here ]------------
[   21.074468] vm_area at addr ffffffffc0800000 is not marked as VM_IOREMAP
[   21.075125] WARNING: CPU: 1 PID: 201 at mm/vmalloc.c:315
ioremap_page_range (vmalloc.c:?)
[   21.075854] Modules linked in: industrialio_triggered_buffer
pcie_rockchip_host(+) coresight kfifo_buf drm fuse backlight dm_mod
ip_tables x_tables
[   21.077047] CPU: 1 PID: 201 Comm: (udev-worker) Not tainted
6.8.0-rc7-next-20240307 #1
[   21.077749] Hardware name: Radxa ROCK Pi 4B (DT)
[   21.078163] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   21.078782] pc : ioremap_page_range (vmalloc.c:?)
[   21.079197] lr : ioremap_page_range (vmalloc.c:?)
<trim>
[   21.086242] Call trace:
[   21.086464] ioremap_page_range (vmalloc.c:?)
[   21.086839] pci_remap_iospace (??:?)
[   21.087192] devm_pci_remap_iospace (??:?)
[   21.087579] devm_of_pci_bridge_init (??:?)
[   21.087990] devm_pci_alloc_host_bridge (??:?)
[   21.088410] rockchip_pcie_probe+0x34/0x30c pcie_rockchip_host
[   21.088955] platform_probe (platform.c:?)
[   21.089288] really_probe (dd.c:?)
[   21.089617] __driver_probe_device (dd.c:?)
[   21.090009] driver_probe_device (dd.c:?)
[   21.090385] __driver_attach (dd.c:?)
[   21.090731] bus_for_each_dev (??:?)
[   21.091084] driver_attach (??:?)
[   21.091412] bus_add_driver (??:?)
[   21.091760] driver_register (??:?)
[   21.092105] __platform_driver_register (??:?)
[   21.092525] init_module+0x20/0xfe8 pcie_rockchip_host
[   21.093010] do_one_initcall (??:?)
[   21.093357] do_init_module (main.c:?)
[   21.093701] load_module (main.c:?)
[   21.094059] __arm64_sys_finit_module (??:?)
[   21.094486] invoke_syscall (syscall.c:?)
[   21.094829] el0_svc_common (syscall.c:?)
[   21.095163] do_el0_svc (??:?)
[   21.095462] el0_svc (entry-common.c:?)
[   21.095740] el0t_64_sync_handler (??:?)
[   21.096113] el0t_64_sync (debug-monitors.c:?)
[   21.096442] ---[ end trace 0000000000000000 ]---


<trim>

# selftests: kvm: memslot_perf_test
# Testing map performance with 1 runs, 5 seconds each
# Memslot count too high for this test, decrease the cap (max is 8209)
#
# Testing unmap performance with 1 runs, 5 seconds each
# Test took 5.097229878s for slot setup + 5.061973294s all iterations
# Done 68 iterations, avg 0.074440783s each
# Best runtime result was 0.074440783s per iteration (with 68 iterations)
#
# Testing unmap chunked performance with 1 runs, 5 seconds each
# Test took 5.037993336s for slot setup + 5.006405252s all iterations
# Done 71 iterations, avg 0.070512750s each
# Best runtime result was 0.070512750s per iteration (with 71 iterations)
#
# Testing move active area performance with 1 runs, 5 seconds each
[  353.142236] Unable to handle kernel NULL pointer dereference at
virtual address 000000000000000a
[  353.143045] Mem abort info:
[  353.143300]   ESR = 0x0000000096000006
[  353.143638]   EC = 0x25: DABT (current EL), IL = 32 bits
[  353.144115]   SET = 0, FnV = 0
[  353.144394]   EA = 0, S1PTW = 0
[  353.144680]   FSC = 0x06: level 2 translation fault
[  353.145124] Data abort info:
[  353.145724]   ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
[  353.146221]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[  353.146675]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[  353.147153] user pgtable: 4k pages, 48-bit VAs, pgdp=00000000095d5000
[  353.147728] [000000000000000a] pgd=0800000009a7d003,
p4d=0800000009a7d003, pud=0800000006cd8003, pmd=0000000000000000
[  353.148692] Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP
[  353.149253] Modules linked in: hantro_vpu snd_soc_hdmi_codec
brcmfmac dw_hdmi_i2s_audio dw_hdmi_cec v4l2_h264 v4l2_vp9 brcmutil
hci_uart v4l2_mem2mem btqca videobuf2_v4l2 btbcm rockchipdrm videodev
bluetooth dw_mipi_dsi panfrost snd_soc_audio_graph_card
snd_soc_simple_card analogix_dp videobuf2_dma_contig ecdh_generic
snd_soc_simple_card_utils dw_hdmi gpu_sched snd_soc_spdif_tx
crct10dif_ce videobuf2_memops cfg80211 videobuf2_common ecc
drm_shmem_helper cec phy_rockchip_pcie mc drm_display_helper rfkill
snd_soc_rockchip_i2s rtc_rk808 drm_dma_helper rockchip_saradc
snd_soc_es8316 drm_kms_helper rockchip_thermal coresight_cpu_debug
industrialio_triggered_buffer pcie_rockchip_host coresight kfifo_buf
drm fuse backlight dm_mod ip_tables x_tables
[  353.155470] CPU: 1 PID: 1146 Comm: memslot_perf_te Tainted: G
 W          6.8.0-rc7-next-20240307 #1
[  353.156328] Hardware name: Radxa ROCK Pi 4B (DT)
[  353.156743] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  353.157369] pc : unmap_region (mmap.c:?)
[  353.157744] lr : unmap_region (mmap.c:?)
<trim>

[  353.164918] Call trace:
[  353.165144] unmap_region (mmap.c:?)
[  353.165478] do_vmi_align_munmap (mmap.c:?)
[  353.165873] do_vmi_munmap (??:?)
[  353.166215] __arm64_sys_munmap (??:?)
[  353.166587] invoke_syscall (syscall.c:?)
[  353.166939] el0_svc_common (syscall.c:?)
[  353.167280] do_el0_svc (??:?)
[  353.167592] el0_svc (entry-common.c:?)
[  353.167881] el0t_64_sync_handler (??:?)
[  353.168265] el0t_64_sync (debug-monitors.c:?)
[ 353.168612] Code: b9003a88 b40000b6 f94006c3 b40000b5 (f94002a4)
All code
========
   0: b9003a88 str w8, [x20, #56]
   4: b40000b6 cbz x22, 0x18
   8: f94006c3 ldr x3, [x22, #8]
   c: b40000b5 cbz x21, 0x20
  10:* f94002a4 ldr x4, [x21] <-- trapping instruction

Code starting with the faulting instruction
===========================================
   0: f94002a4 ldr x4, [x21]
[  353.169156] ---[ end trace 0000000000000000 ]---
[  353.174026] Unable to handle kernel NULL pointer dereference at
virtual address 000000000000000a
[  353.174820] Mem abort info:
[  353.175068]   ESR = 0x0000000096000006
[  353.175400]   EC = 0x25: DABT (current EL), IL = 32 bits
[  353.175899]   SET = 0, FnV = 0
[  353.176171]   EA = 0, S1PTW = 0
[  353.176451]   FSC = 0x06: level 2 translation fault
[  353.176881] Data abort info:
[  353.177136]   ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
[  353.177694]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[  353.178140]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[  353.178608] user pgtable: 4k pages, 48-bit VAs, pgdp=00000000095d5000
[  353.179174] [000000000000000a] pgd=0800000009a7d003,
p4d=0800000009a7d003, pud=0800000006cd8003, pmd=0000000000000000
[  353.180113] Internal error: Oops: 0000000096000006 [#2] PREEMPT SMP
[  353.180664] Modules linked in: hantro_vpu snd_soc_hdmi_codec
brcmfmac dw_hdmi_i2s_audio dw_hdmi_cec v4l2_h264 v4l2_vp9 brcmutil
hci_uart v4l2_mem2mem btqca videobuf2_v4l2 btbcm rockchipdrm videodev
bluetooth dw_mipi_dsi panfrost snd_soc_audio_graph_card
snd_soc_simple_card analogix_dp videobuf2_dma_contig ecdh_generic
snd_soc_simple_card_utils dw_hdmi gpu_sched snd_soc_spdif_tx
crct10dif_ce videobuf2_memops cfg80211 videobuf2_common ecc
drm_shmem_helper cec phy_rockchip_pcie mc drm_display_helper rfkill
snd_soc_rockchip_i2s rtc_rk808 drm_dma_helper rockchip_saradc
snd_soc_es8316 drm_kms_helper rockchip_thermal coresight_cpu_debug
industrialio_triggered_buffer pcie_rockchip_host coresight kfifo_buf
drm fuse backlight dm_mod ip_tables x_tables
[  353.186529] CPU: 1 PID: 1146 Comm: memslot_perf_te Tainted: G
D W          6.8.0-rc7-next-20240307 #1
[  353.187375] Hardware name: Radxa ROCK Pi 4B (DT)
[  353.187782] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  353.188394] pc : acct_collect (??:?)
[  353.188753] lr : acct_collect (??:?)
<trim>
[  353.195711] Call trace:
[  353.195929] acct_collect (??:?)
[  353.196250] do_exit (exit.c:?)
[  353.196543] make_task_dead (exit.c:?)
[  353.196878] die (??:?)
[  353.197138] __do_kernel_fault (fault.c:?)
[  353.197504] do_page_fault (fault.c:?)
[  353.197832] do_translation_fault (fault.c:?)
[  353.198204] do_mem_abort (??:?)
[  353.198516] el1_abort (entry-common.c:?)
[  353.198807] el1h_64_sync_handler (??:?)
[  353.199179] el1h_64_sync (debug-monitors.c:?)
[  353.199490] unmap_region (mmap.c:?)
[  353.199813] do_vmi_align_munmap (mmap.c:?)
[  353.200193] do_vmi_munmap (??:?)
[  353.200521] __arm64_sys_munmap (??:?)
[  353.200880] invoke_syscall (syscall.c:?)
[  353.201217] el0_svc_common (syscall.c:?)
[  353.201545] do_el0_svc (??:?)
[  353.201842] el0_svc (entry-common.c:?)
[  353.202117] el0t_64_sync_handler (??:?)
[  353.202488] el0t_64_sync (debug-monitors.c:?)
[ 353.202821] Code: 92800001 943f6bcb aa1f03f7 b4000100 (a9402009)
All code
========
   0: 92800001 mov x1, #0xffffffffffffffff    // #-1
   4: 943f6bcb bl 0xfdaf30
   8: aa1f03f7 mov x23, xzr
   c: b4000100 cbz x0, 0x2c
  10:* a9402009 ldp x9, x8, [x0] <-- trapping instruction

Code starting with the faulting instruction
===========================================
   0: a9402009 ldp x9, x8, [x0]
[  353.203355] ---[ end trace 0000000000000000 ]---
[  353.204109] Fixing recursive fault but reboot is needed!
[  353.217290] Unable to handle kernel NULL pointer dereference at
virtual address 0000000000000038
[  353.218090] Mem abort info:
[  353.218340]   ESR = 0x0000000096000006
[  353.218675]   EC = 0x25: DABT (current EL), IL = 32 bits
[  353.219147]   SET = 0, FnV = 0
[  353.219422]   EA = 0, S1PTW = 0
[  353.219705]   FSC = 0x06: level 2 translation fault
[  353.220138] Data abort info:
[  353.220396]   ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
[  353.220881]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[  353.221348]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[  353.221821] user pgtable: 4k pages, 48-bit VAs, pgdp=00000000095d5000
[  353.222393] [0000000000000038] pgd=0800000009a7d003,
p4d=0800000009a7d003, pud=0800000006cd8003, pmd=0000000000000000
[  353.223345] Internal error: Oops: 0000000096000006 [#3] PREEMPT SMP
[  353.223901] Modules linked in: hantro_vpu snd_soc_hdmi_codec
brcmfmac dw_hdmi_i2s_audio dw_hdmi_cec v4l2_h264 v4l2_vp9 brcmutil
hci_uart v4l2_mem2mem btqca videobuf2_v4l2 btbcm rockchipdrm videodev
bluetooth dw_mipi_dsi panfrost snd_soc_audio_graph_card
snd_soc_simple_card analogix_dp videobuf2_dma_contig ecdh_generic
snd_soc_simple_card_utils dw_hdmi gpu_sched snd_soc_spdif_tx
crct10dif_ce videobuf2_memops cfg80211 videobuf2_common ecc
drm_shmem_helper cec phy_rockchip_pcie mc drm_display_helper rfkill
snd_soc_rockchip_i2s rtc_rk808 drm_dma_helper rockchip_saradc
snd_soc_es8316 drm_kms_helper rockchip_thermal coresight_cpu_debug
industrialio_triggered_buffer pcie_rockchip_host coresight kfifo_buf
drm fuse backlight dm_mod ip_tables x_tables
[  353.229874] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G      D W
   6.8.0-rc7-next-20240307 #1
[  353.230659] Hardware name: Radxa ROCK Pi 4B (DT)
[  353.231070] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  353.231689] pc : kmem_cache_free (slub.c:?)
[  353.232079] lr : mt_free_walk (maple_tree.c:?)
<trim>
[  353.239161] Call trace:
[  353.239384] kmem_cache_free (slub.c:?)
[  353.239733] mt_free_walk (maple_tree.c:?)
[  353.240065] rcu_core (tree.c:?)
[  353.240374] rcu_core_si (tree.c:?)
[  353.240687] __do_softirq (??:?)
[  353.241013] ____do_softirq (irq.c:?)
[  353.241346] call_on_irq_stack (debug-monitors.c:?)
[  353.241703] do_softirq_own_stack (??:?)
[  353.242082] __irq_exit_rcu (softirq.c:?)
[  353.242419] irq_exit_rcu (??:?)
[  353.242741] el1_interrupt (entry-common.c:?)
[  353.243068] el1h_64_irq_handler (??:?)
[  353.243439] el1h_64_irq (debug-monitors.c:?)
[  353.243748] arch_local_irq_enable (build_policy.c:?)
[  353.244121] cpuidle_enter (??:?)
[  353.244446] do_idle (build_policy.c:?)
[  353.244743] cpu_startup_entry (??:?)
[  353.245099] secondary_start_kernel (smp.c:?)
[  353.245510] __secondary_switched (mte.c:?)
[ 353.245898] Code: f90003f3 d34c2d08 8a88fed6 d503201f (f9401ec8)
All code
========
   0: f90003f3 str x19, [sp]
   4: d34c2d08 lsl x8, x8, #52
   8: 8a88fed6 and x22, x22, x8, asr #63
   c: d503201f nop
  10:* f9401ec8 ldr x8, [x22, #56] <-- trapping instruction

Code starting with the faulting instruction
===========================================
   0: f9401ec8 ldr x8, [x22, #56]
[  353.246438] ---[ end trace 0000000000000000 ]---
[  353.246850] Kernel panic - not syncing: Oops: Fatal exception in interrupt
[  353.247456] SMP: stopping secondary CPUs
[  353.247938] Kernel Offset: disabled
[  353.248250] CPU features: 0x2,00000820,b0280000,2100421b
[  353.248722] Memory Limit: none
[  353.249007] ---[ end Kernel panic - not syncing: Oops: Fatal
exception in interrupt ]---


steps to reproduce:
--------

Boot warning on qemu-arm64:
 - https://tuxapi.tuxsuite.com/v1/groups/linaro/projects/lkft/tests/2dLoS0ddamJtpsqNeVNZ6CKglNv/reproducer


Links:
  - https://lkft.validation.linaro.org/scheduler/job/7340334#L1014
  - https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240307/testrun/22996522/suite/log-parser-test/test/check-kernel-oops-25b0708a1d4f25b5107a2f0a7d82f4edd2712d1b32a1c72988a53386013c1d6c/log
  - https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240307/testrun/22996522/suite/log-parser-test/test/check-kernel-oops-25b0708a1d4f25b5107a2f0a7d82f4edd2712d1b32a1c72988a53386013c1d6c/details/
  - https://storage.tuxsuite.com/public/linaro/lkft/builds/2dLoQ0q6xeDevTFQGWYZqtTey7X/
  - https://storage.tuxsuite.com/public/linaro/lkft/builds/2dLoQ0q6xeDevTFQGWYZqtTey7X/config


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




[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux