From: Stanislav Fomichev <stfomichev@gmail.com>
To: Tariq Toukan <tariqt@nvidia.com>
Cc: Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Saeed Mahameed <saeedm@nvidia.com>,
Leon Romanovsky <leon@kernel.org>, Mark Bloch <mbloch@nvidia.com>,
netdev@vger.kernel.org, linux-rdma@vger.kernel.org,
linux-kernel@vger.kernel.org,
Dragos Tatulea <dtatulea@nvidia.com>,
Mina Almasry <almasrymina@google.com>
Subject: Re: [PATCH net-next] net/mlx5e: TX, Fix dma unmapping for devmem tx
Date: Wed, 16 Jul 2025 14:37:16 -0700 [thread overview]
Message-ID: <aHgbjCh0UzYAD8Tm@mini-arch> (raw)
In-Reply-To: <1752649242-147678-1-git-send-email-tariqt@nvidia.com>
On 07/16, Tariq Toukan wrote:
> From: Dragos Tatulea <dtatulea@nvidia.com>
>
> net_iovs should have the dma address set to 0 so that
> netmem_dma_unmap_page_attrs() correctly skips the unmap. This was
> not done in mlx5 when support for devmem tx was added and resulted
> in the splat below when the platform iommu was enabled.
>
> This patch addresses the issue by using netmem_dma_unmap_addr_set()
> which handles the net_iov case when setting the dma address. A small
> refactoring of mlx5e_dma_push() was required to be able to use this API.
> The function was split in two versions and each version called
> accordingly. Note that netmem_dma_unmap_addr_set() introduces an
> additional if case.
>
> Splat:
> WARNING: CPU: 14 PID: 2587 at drivers/iommu/dma-iommu.c:1228 iommu_dma_unmap_page+0x7d/0x90
> Modules linked in: [...]
> Unloaded tainted modules: i10nm_edac(E):1 fjes(E):1
> CPU: 14 UID: 0 PID: 2587 Comm: ncdevmem Tainted: G S E 6.15.0+ #3 PREEMPT(voluntary)
> Tainted: [S]=CPU_OUT_OF_SPEC, [E]=UNSIGNED_MODULE
> Hardware name: HPE ProLiant DL380 Gen10 Plus/ProLiant DL380 Gen10 Plus, BIOS U46 06/01/2022
> RIP: 0010:iommu_dma_unmap_page+0x7d/0x90
> Code: [...]
> RSP: 0000:ff6b1e3ea0b2fc58 EFLAGS: 00010246
> RAX: 0000000000000000 RBX: ff46ef2d0a2340c8 RCX: 0000000000000000
> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000001
> RBP: 0000000000000001 R08: 0000000000000000 R09: ffffffff8827a120
> R10: 0000000000000000 R11: 0000000000000000 R12: 00000000d8000000
> R13: 0000000000000008 R14: 0000000000000001 R15: 0000000000000000
> FS: 00007feb69adf740(0000) GS:ff46ef2c779f1000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007feb69cca000 CR3: 0000000154b97006 CR4: 0000000000773ef0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> PKRU: 55555554
> Call Trace:
> <TASK>
> dma_unmap_page_attrs+0x227/0x250
> mlx5e_poll_tx_cq+0x163/0x510 [mlx5_core]
> mlx5e_napi_poll+0x94/0x720 [mlx5_core]
> __napi_poll+0x28/0x1f0
> net_rx_action+0x33a/0x420
> ? mlx5e_completion_event+0x3d/0x40 [mlx5_core]
> handle_softirqs+0xe8/0x2f0
> __irq_exit_rcu+0xcd/0xf0
> common_interrupt+0x47/0xa0
> asm_common_interrupt+0x26/0x40
> RIP: 0033:0x7feb69cd08ec
> Code: [...]
> RSP: 002b:00007ffc01b8c880 EFLAGS: 00000246
> RAX: 00000000c3a60cf7 RBX: 0000000000045e12 RCX: 000000000000000e
> RDX: 00000000000035b4 RSI: 0000000000000000 RDI: 00007ffc01b8c8c0
> RBP: 00007ffc01b8c8b0 R08: 0000000000000000 R09: 0000000000000064
> R10: 00007ffc01b8c8c0 R11: 0000000000000000 R12: 00007feb69cca000
> R13: 00007ffc01b90e48 R14: 0000000000427e18 R15: 00007feb69d07000
> </TASK>
>
> Cc: Mina Almasry <almasrymina@google.com>
> Reported-by: Stanislav Fomichev <stfomichev@gmail.com>
> Closes: https://lore.kernel.org/all/aFM6r9kFHeTdj-25@mini-arch/
> Fixes: 5a842c288cfa ("net/mlx5e: Add TX support for netmems")
> Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
> Reviewed-by: Carolina Jubran <cjubran@nvidia.com>
> Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
next prev parent reply other threads:[~2025-07-16 21:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-16 7:00 [PATCH net-next] net/mlx5e: TX, Fix dma unmapping for devmem tx Tariq Toukan
2025-07-16 19:16 ` Mina Almasry
2025-07-21 6:58 ` Dragos Tatulea
2025-07-16 21:37 ` Stanislav Fomichev [this message]
2025-07-17 19:20 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aHgbjCh0UzYAD8Tm@mini-arch \
--to=stfomichev@gmail.com \
--cc=almasrymina@google.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=dtatulea@nvidia.com \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=mbloch@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=saeedm@nvidia.com \
--cc=tariqt@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.