Add debugfs support for the Tyr DRM driver. The series adds a SeqShow trait for seq_file-backed debugfs files, a debugfs_init callback on the DRM Driver trait, and a gpuvas debugfs file in Tyr exposing GPU VA space information.
This is based on drm-rust-next and depends on: [PATCH v10 0/7] drm/tyr: firmware loading and MCU boot support https://lore.kernel.org/r/[email protected] See the full dependency and commit history at [1]. Link: https://gitlab.freedesktop.org/panfrost/linux/-/issues/11 Link: https://gitlab.freedesktop.org/panfrost/linux/-/merge_requests/59 [1] Signed-off-by: Alvin Sun <[email protected]> --- Changes in v3: - Drop the DrmSeqShow adapter and use SeqShow directly, per Danilo's feedback. Simplify the debugfs_init callback signature accordingly. - Redesign VmRegistry per Daniel's and Alice's feedback: move it to vm.rs at the top level of the registration data, use Arc<VmRegistry> for shared ownership, and separate register/unregister from Vm::new and Vm::kill. Registration failure is non-fatal (dev_warn) since the registry is a debugfs convenience. - Add VmRegistry::unregister to remove VMs on teardown, addressing Alice's concern about the list going out of sync. - Drop the "hold device reference for open files" patch; the debugfs proxy fops already ensure file operations cannot outlive debugfs_remove(). - Improve SAFETY comments and fix style issues identified during review. - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - Reworked the debugfs implementation per feedback from Danilo on v1: dropped the hazptr/revocable-based approach in favor of the DRM debugfs_init callback and generic seq_file abstractions. - Fixed a UAF in drm_debugfs where a device could be unregistered while a debugfs file remains open (drm_dev_get/put across file lifetime). - Link to v1: https://lore.kernel.org/r/[email protected] --- Alvin Sun (8): rust: seq_file: add as_raw() method rust: debugfs: add seq_file support rust: debugfs: add ScopeRef for existing dentries drm: move debugfs_init after dev->registered is set rust: drm: add debugfs_init callback to Driver trait rust: drm: gpuvm: add dump_gpuva_info to UniqueRefGpuVm drm/tyr: track VMs in a registry drm/tyr: add gpuvas debugfs file drivers/gpu/drm/drm_debugfs.c | 3 -- drivers/gpu/drm/drm_drv.c | 5 +++ drivers/gpu/drm/tyr/debugfs.rs | 20 ++++++++++ drivers/gpu/drm/tyr/driver.rs | 16 +++++++- drivers/gpu/drm/tyr/fw.rs | 18 +++++++-- drivers/gpu/drm/tyr/tyr.rs | 1 + drivers/gpu/drm/tyr/vm.rs | 33 ++++++++++++++++ rust/bindings/bindings_helper.h | 1 + rust/kernel/debugfs.rs | 84 ++++++++++++++++++++++++++++++++++++++++- rust/kernel/debugfs/entry.rs | 15 +++++++- rust/kernel/debugfs/file_ops.rs | 60 +++++++++++++++++++++++++++++ rust/kernel/debugfs/traits.rs | 11 ++++++ rust/kernel/drm/device.rs | 41 +++++++++++++++++++- rust/kernel/drm/driver.rs | 11 ++++++ rust/kernel/drm/gpuvm/mod.rs | 9 +++++ rust/kernel/seq_file.rs | 6 +++ 16 files changed, 323 insertions(+), 11 deletions(-) --- base-commit: 0ffc014cb2abfc79d161662b125e085b3e7107e7 change-id: 20260730-tyr-debugfs-v2-608cef77d6e9 Best regards, -- Alvin Sun <[email protected]>
