r535_gsp_libos_debugfs_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… r535_gsp_libos_debugfs_init(9) β€” from the Kernel API Manual, with love ✨

okay so bestie, this is the manual page for r535_gsp_libos_debugfs_init(9) from the Kernel API Manual. It’s literally about creating logging debugfs entries, and we’re gonna get into it. No cap. 🫢

πŸŽ€ NAME πŸŽ€

r535_gsp_libos_debugfs_init β€” create logging debugfs entries πŸ’–

✨ SYNOPSIS ✨

void r535_gsp_libos_debugfs_init (struct nvkm_gsp *gsp );

🌸 ARGUMENTS 🌸

  • gsp β€” a gsp pointer. That’s it, that’s the argument. 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so this function creates the debugfs entries. The way it exposes the log buffers to userspace so that an external tool can parse it? Obsessed. πŸ”₯

The logpmu entry contains exception dumps from the PMU. It is written via an RPC sent from GSP-RM and must be only 4KB β€” yes, only 4KB, periodt. We create it here because it’s only useful if there is a debugfs entry to expose it. And if we get the PMU logging RPC and there is no debugfs entry, the RPC is just ignored. Bye. πŸ’€

The blob_init, blob_rm, and blob_pmu objects can’t be transient because debugfs_create_blob doesn’t copy them. So no transience for them, bestie. πŸŽ€

🫢 NOTE 🫢

okay so OpenRM vibes: it loads the logging elf image and prints the log messages in real-time. We may add that capability in the future, but that requires loading ELF images that are not distributed with the driver and adding the parsing code to Nouveau β€” so it’s a whole thing. 🌈

Ideally, this should be part of nouveau_debugfs_init, but that function is called too late. We really want to create these debugfs entries before r535_gsp_booter_load is called, so that if GSP-RM fails to initialize, there could still be a log to capture. That’s the whole point, fr fr. πŸ’…

🌟 SEE ALSO 🌟


xoxo, footer energy: source/version is ./drivers/gpu/drm/nouveau/nvkm..., dated October 2026, and the whole thing is stamped r535_gsp_libos_debugfs_init(9) πŸ’–

πŸ“¦ where this page comes from