[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAL0q8a7sE4a00ehKrkyepA_xA3Z2HiGv0LazvYe=2NciTkkPFQ@mail.gmail.com>
Date: Mon, 30 Jun 2025 20:51:01 +0100
From: Ben Copeland <ben.copeland@...aro.org>
To: Christoph Hellwig <hch@....de>
Cc: linux-kernel@...r.kernel.org, lkft-triage@...ts.linaro.org,
regressions@...ts.linux.dev, linux-nvme@...ts.infradead.org,
Dan Carpenter <dan.carpenter@...aro.org>, kbusch@...nel.org, axboe@...nel.dk,
sagi@...mberg.me, iommu@...ts.linux.dev
Subject: Re: next-20250627: IOMMU DMA warning during NVMe I/O completion after 06cae0e3f61c
Hello Christoph,
On Mon, 30 Jun 2025 at 14:33, Christoph Hellwig <hch@....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
Powered by blists - more mailing lists