Hello Christoph,
On Mon, 30 Jun 2025 at 14:33, Christoph Hellwig hch@lst.de wrote:
Hi Ben,
[ 32.857521] iommu_dma_unmap_page+0xc4/0xe8 (P)
Can you resolve this to a source location for me. i.e.
gdb vmlinux
l *(iommu_dma_unmap_page+0xc4)
Sure, here's the kernel stack trace.
[ 32.699872] WARNING: drivers/iommu/dma-iommu.c:1232 at iommu_dma_unmap_page+0xc4/0xe8, CPU#13: swapper/13/0 [ 32.714204] Modules linked in: cdc_ether usbnet sm3_ce nvme sha3_ce nvme_core xhci_pci_renesas arm_cspmu_module arm_spe_pmu ipmi_devintf arm_cmn ipmi_msghandler cppc_cpufreq fuse drm backlight ip_tables x_tables [ 32.732967] CPU: 13 UID: 0 PID: 0 Comm: swapper/13 Tainted: G W 6.16.0-rc3-next-20250627 #1 PREEMPT [ 32.743562] Tainted: [W]=WARN [ 32.749381] Hardware name: Inspur NF5280R7/Mitchell MB, BIOS 04.04.00004001 2025-02-04 22:23:30 02/04/2025 [ 32.759020] pstate: 63400009 (nZCv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--) [ 32.768746] pc : iommu_dma_unmap_page (/builds/linux/drivers/iommu/dma-iommu.c:1232 (discriminator 1)) [ 32.776040] lr : iommu_dma_unmap_page (/builds/linux/drivers/iommu/dma-iommu.c:1232 (discriminator 1)) [ 32.780559] sp : ffff8000801afde0 [ 32.783861] x29: ffff8000801afde0 x28: 0000000000000005 x27: fff00001d7d230f0 [ 32.790983] x26: 0000000000000000 x25: fff00001003da0c8 x24: 0000000000000002 [ 32.798106] x23: 0000000000000000 x22: 0000000000001000 x21: 00000000feed5000 [ 32.805229] x20: fff00001003da0c8 x19: fff00001d7d23000 x18: 0000000000080000 [ 32.812352] x17: 0000000000000040 x16: ffffae5c7594ea68 x15: 0000000000000000 [ 32.819474] x14: 000000000007ffff x13: 0000000000000001 x12: 000000000000002c [ 32.826597] x11: 00000000000fffff x10: ffffffffffffffff x9 : ffffae5c76358e60 [ 32.833719] x8 : ffff8000801afd68 x7 : ffffae5c76358a78 x6 : 00000000feed5001 [ 32.840842] x5 : 000000000000000d x4 : ffffae5c76358a78 x3 : 0000000000000000 [ 32.847965] x2 : 0000000000000000 x1 : fff00001027e54c0 x0 : 0000000000000000 [ 32.855088] Call trace: [ 32.857521] iommu_dma_unmap_page (/builds/linux/drivers/iommu/dma-iommu.c:1232 (discriminator 1)) (P) [ 32.862039] dma_unmap_page_attrs (/builds/linux/kernel/dma/mapping.c:193) [ 32.866385] nvme_unmap_data (/home/ben/linux/linux/drivers/nvme/host/nvme.h:788 /home/ben/linux/linux/drivers/nvme/host/pci.c:1077) nvme [ 32.870904] nvme_pci_complete_rq (/home/ben/linux/linux/drivers/nvme/host/pci.c:1051 /home/ben/linux/linux/drivers/nvme/host/pci.c:1063 /home/ben/linux/linux/drivers/nvme/host/pci.c:1071) nvme [ 32.878632] blk_complete_reqs (/builds/linux/block/blk-mq.c:1223 (discriminator 1)) [ 32.885320] blk_done_softirq (/builds/linux/block/blk-mq.c:1230) [ 32.892006] handle_softirqs (/builds/linux/arch/arm64/include/asm/jump_label.h:36 /builds/linux/include/trace/events/irq.h:142 /builds/linux/kernel/softirq.c:580) [ 32.896436] __do_softirq (/builds/linux/kernel/softirq.c:614) [ 32.899912] ____do_softirq (/builds/linux/arch/arm64/kernel/irq.c:82) [ 32.903561] call_on_irq_stack (/builds/linux/arch/arm64/kernel/entry.S:897) [ 32.907472] do_softirq_own_stack (/builds/linux/arch/arm64/kernel/irq.c:87) [ 32.911642] __irq_exit_rcu (/builds/linux/kernel/softirq.c:460 /builds/linux/kernel/softirq.c:680) [ 32.915378] irq_exit_rcu (/builds/linux/kernel/softirq.c:698 (discriminator 1)) [ 32.918854] el1_interrupt (/builds/linux/arch/arm64/include/asm/current.h:19 /builds/linux/arch/arm64/kernel/entry-common.c:280 /builds/linux/arch/arm64/kernel/entry-common.c:586 /builds/linux/arch/arm64/kernel/entry-common.c:598) [ 32.922418] el1h_64_irq_handler (/builds/linux/arch/arm64/kernel/entry-common.c:604) [ 32.926502] el1h_64_irq (/builds/linux/arch/arm64/kernel/entry.S:596) [ 32.929891] cpuidle_enter_state (/builds/linux/drivers/cpuidle/cpuidle.c:292) (P) [ 32.934410] cpuidle_enter (/builds/linux/drivers/cpuidle/cpuidle.c:391 (discriminator 2)) [ 32.937972] do_idle (/builds/linux/kernel/sched/idle.c:160 /builds/linux/kernel/sched/idle.c:235 /builds/linux/kernel/sched/idle.c:330) [ 32.941188] cpu_startup_entry (/builds/linux/kernel/sched/idle.c:428 (discriminator 1)) [ 32.945098] secondary_start_kernel (/builds/linux/arch/arm64/include/asm/atomic_ll_sc.h:95 (discriminator 2) /builds/linux/arch/arm64/include/asm/atomic.h:28 (discriminator 2) /builds/linux/include/linux/atomic/atomic-arch-fallback.h:546 (discriminator 2) /builds/linux/include/linux/atomic/atomic-arch-fallback.h:994 (discriminator 2) /builds/linux/include/linux/atomic/atomic-instrumented.h:436 (discriminator 2) /builds/linux/include/linux/sched/mm.h:37 (discriminator 2) /builds/linux/arch/arm64/kernel/smp.c:214 (discriminator 2)) [ 32.949617] __secondary_switched (/builds/linux/arch/arm64/kernel/head.S:405) [ 32.953788] ---[ end trace 0000000000000000 ]---
Also what IOMMU driver is this device using? It looks like it might not support a 4k IOMMU page size.
From the boot log, I can see
[ 1.083447] arm-smmu-v3 arm-smmu-v3.16.auto: option mask 0x0 [ 1.083460] arm-smmu-v3 arm-smmu-v3.16.auto: IDR0.HTTU features(0x600000) overridden by FW configuration (0x0) [ 1.083463] arm-smmu-v3 arm-smmu-v3.16.auto: ias 48-bit, oas 48-bit (features 0x0094dfef)
Let me know if there is anything else.
Ben