From: Matteo Kloiber <kernel@matt3o12.de>
To: dakr@kernel.org, acourbot@nvidia.com
Cc: aliceryhl@google.com, ojeda@kernel.org, airlied@gmail.com,
simona@ffwll.ch, abdiel.janulgue@gmail.com,
daniel.almeida@collabora.com, robin.murphy@arm.com,
a.hindborg@kernel.org, nova-gpu@lists.linux.dev,
dri-devel@lists.freedesktop.org, driver-core@lists.linux.dev,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
Matteo Kloiber <kernel@matt3o12.de>
Subject: [PATCH 0/2] rust: honor the maximum DMA segment size
Date: Tue, 1 Sep 2026 01:32:13 +0200 [thread overview]
Message-ID: <20260831233215.287881-1-kernel@matt3o12.de> (raw)
Booting nova-core against a real GSP with CONFIG_DMA_API_DEBUG=y warns
when the ~60 MiB firmware image is mapped as a scatter-gather table:
DMA-API: nova-core 0000:00:03.0: mapping sg segment longer than
device claims to support [len=62914560] [max=65536]
There are two separate issues behind it.
Patch 1 has nova-core declare the segment size it actually supports. It
re-decomposes every segment into 4 KiB GSP page-table entries, so it has
no upper bound on segment length.
Furthermore, I also checked what other GPUs do, and most do the same:
set the max segment size u32::MAX. So this should be the correct
behavior for nova as well.
Patch 2 has SGTable::new() honor dma_get_max_seg_size() in addition to
dma_max_mapping_size(). The abstraction is generic, so a driver with a
real hardware segment limit would otherwise silently be handed segments
it cannot express in a single descriptor.
Tested on an RTX 5080 (GB203) passed through to a QEMU guest via VFIO
with CONFIG_DMA_API_DEBUG=y: the warning is gone, and GSP boot and RPC
still work.
Discussed on Zulip:
https://rust-for-linux.zulipchat.com/#narrow/channel/509436-Nova/topic/nova.20core.3A.20DMA-API.3A.20nova-core.200000.3A00.3A03.2E0.3A.20mapping.20sg.20segme/with/618319830
Matteo Kloiber (2):
gpu: nova-core: declare unlimited DMA max segment size
rust: scatterlist: honor the device's maximum segment size
drivers/gpu/nova-core/gpu.rs | 7 +++++++
rust/helpers/dma.c | 5 +++++
rust/kernel/scatterlist.rs | 12 ++++++++++--
3 files changed, 22 insertions(+), 2 deletions(-)
base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
--
2.51.2
next reply other threads:[~2026-08-31 23:41 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-31 23:32 Matteo Kloiber [this message]
2026-08-31 23:32 ` [PATCH 1/2] gpu: nova-core: declare unlimited DMA max segment size Matteo Kloiber
2026-09-07 2:10 ` Alexandre Courbot
2026-09-13 21:07 ` Matteo Kloiber
2026-08-31 23:32 ` [PATCH 2/2] rust: scatterlist: honor the device's maximum " Matteo Kloiber
2026-09-07 2:43 ` Alexandre Courbot
2026-09-13 21:08 ` Matteo Kloiber
2026-09-14 0:45 ` Alexandre Courbot
2026-09-14 9:58 ` Danilo Krummrich
2026-09-14 10:22 ` Gary Guo
2026-09-14 12:17 ` Robin Murphy
2026-09-14 13:17 ` Gary Guo
2026-09-14 13:57 ` Danilo Krummrich
2026-09-17 9:06 ` Alexandre Courbot
2026-09-27 22:44 ` Matteo Kloiber
2026-09-28 15:05 ` Alexandre Courbot
2026-09-28 17:39 ` Gary Guo
2026-09-28 18:22 ` Danilo Krummrich
2026-10-03 1:51 ` Alexandre Courbot
2026-09-15 4:44 ` Alexandre Courbot
2026-09-15 4:52 ` Alexandre Courbot
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=20260831233215.287881-1-kernel@matt3o12.de \
--to=kernel@matt3o12.de \
--cc=a.hindborg@kernel.org \
--cc=abdiel.janulgue@gmail.com \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=aliceryhl@google.com \
--cc=dakr@kernel.org \
--cc=daniel.almeida@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=driver-core@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=nova-gpu@lists.linux.dev \
--cc=ojeda@kernel.org \
--cc=robin.murphy@arm.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=simona@ffwll.ch \
/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.