[PATCH v7 0/4] gpu: nova-core: retain the GSP-RM log buffers

From: Vladislav Zaharov

Date: Fri Nov 13 2026 - 04:40:15 EST


The GSP-RM log buffers are exposed through debugfs, but they go away
when the GPU is unbound, including when probe() fails, which is when
they are most useful.

Patch 1 moves the debugfs root into the module data, which also fixes
the root being leaked when the driver registration fails. Patch 2 moves
the log buffer code into its own file. Patch 3 adds a gsp_keep_logs
module parameter that keeps a copy of the buffers after unbind. Patch 4
drops the completed item from todo.rst.

Changes since v6:
- drop the "retained/" directory: the copies are exposed in the same
files as the live buffers, and are dropped when the GPU is bound
again (Danilo, John)
- split the code move out of the retain patch (Alexandre)
- move DebugfsData into debugfs.rs, make the accessor
NovaCoreModule::debugfs_data(), reword the comments around
DEBUGFS_DATA as invariants, add a Fixes: tag (Alexandre, Danilo)
- shorten the commit messages and comments (Alexandre)
- rebase onto current drm-rust-next

The code and the commit messages were drafted with an LLM coding
assistant and reviewed by me. Each patch builds on its own, and the
series was tested on a GB203:

- without gsp_keep_logs nothing changes;
- with gsp_keep_logs=1, <BDF>/{loginit,logintr,logrm} keep the full
64 KiB of each buffer after unbind, show the live buffers again
after the next bind, and a second unbind replaces the copies;
- with a failure injected after the GSP has booted, probe() fails
with -EINVAL and the logs of that attempt are still readable;
- with a failure injected into the driver registration, the module
fails to load and leaves no debugfs directory behind;
- 40 load/bind/unbind/unload cycles use no more memory with
gsp_keep_logs=1 than without it.

v6: https://lore.kernel.org/nova-gpu/20261014154554.231015-1-vladazaharova2018@xxxxxxxxx/

Vladislav Zaharov (4):
gpu: nova-core: move the debugfs root into the module data
gpu: nova-core: gsp: move the log buffers into their own file
gpu: nova-core: gsp: retain the GSP-RM log buffers after unbind
Documentation: nova: remove completed GSP log buffer task

Documentation/gpu/nova/core/todo.rst | 12 --
drivers/gpu/nova-core/debugfs.rs | 44 ++++++
drivers/gpu/nova-core/gsp.rs | 100 +++---------
drivers/gpu/nova-core/gsp/logbuffer.rs | 204 +++++++++++++++++++++++++
drivers/gpu/nova-core/nova_core.rs | 68 ++++++---
5 files changed, 311 insertions(+), 117 deletions(-)
create mode 100644 drivers/gpu/nova-core/debugfs.rs
create mode 100644 drivers/gpu/nova-core/gsp/logbuffer.rs


base-commit: 0ff9e5b9ff6736c37593cd7db89f4593ec4f8e86
--
2.56.0