Rust GPUVM support
| From: | Alice Ryhl <aliceryhl-AT-google.com> | |
| To: | Danilo Krummrich <dakr-AT-kernel.org>, Daniel Almeida <daniel.almeida-AT-collabora.com> | |
| Subject: | [PATCH 0/4] Rust GPUVM support | |
| Date: | Fri, 28 Nov 2025 14:14:14 +0000 | |
| Message-ID: | <20251128-gpuvm-rust-v1-0-ebf66bf234e0@google.com> | |
| Cc: | Matthew Brost <matthew.brost-AT-intel.com>, "Thomas Hellström" <thomas.hellstrom-AT-linux.intel.com>, Maarten Lankhorst <maarten.lankhorst-AT-linux.intel.com>, Maxime Ripard <mripard-AT-kernel.org>, Thomas Zimmermann <tzimmermann-AT-suse.de>, David Airlie <airlied-AT-gmail.com>, Simona Vetter <simona-AT-ffwll.ch>, Boris Brezillon <boris.brezillon-AT-collabora.com>, Steven Price <steven.price-AT-arm.com>, Liviu Dudau <liviu.dudau-AT-arm.com>, Miguel Ojeda <ojeda-AT-kernel.org>, Boqun Feng <boqun.feng-AT-gmail.com>, Gary Guo <gary-AT-garyguo.net>, "Björn Roy Baron" <bjorn3_gh-AT-protonmail.com>, Benno Lossin <lossin-AT-kernel.org>, Andreas Hindborg <a.hindborg-AT-kernel.org>, Trevor Gross <tmgross-AT-umich.edu>, Frank Binns <frank.binns-AT-imgtec.com>, Matt Coster <matt.coster-AT-imgtec.com>, Rob Clark <robin.clark-AT-oss.qualcomm.com>, Dmitry Baryshkov <lumag-AT-kernel.org>, Abhinav Kumar <abhinav.kumar-AT-linux.dev>, Jessica Zhang <jessica.zhang-AT-oss.qualcomm.com>, Sean Paul <sean-AT-poorly.run>, Marijn Suijten <marijn.suijten-AT-somainline.org>, Lyude Paul <lyude-AT-redhat.com>, Lucas De Marchi <lucas.demarchi-AT-intel.com>, Rodrigo Vivi <rodrigo.vivi-AT-intel.com>, Sumit Semwal <sumit.semwal-AT-linaro.org>, "Christian König" <christian.koenig-AT-amd.com>, dri-devel-AT-lists.freedesktop.org, linux-kernel-AT-vger.kernel.org, rust-for-linux-AT-vger.kernel.org, linux-arm-msm-AT-vger.kernel.org, freedreno-AT-lists.freedesktop.org, nouveau-AT-lists.freedesktop.org, intel-xe-AT-lists.freedesktop.org, linux-media-AT-vger.kernel.org, linaro-mm-sig-AT-lists.linaro.org, Alice Ryhl <aliceryhl-AT-google.com>, Asahi Lina <lina+kernel-AT-asahilina.net> | |
| Archive-link: | Article |
This makes a few changes to the way immediate mode works, and then it implements a Rust immediate mode GPUVM abstraction on top of that. Please see the following branch for example usage in Tyr: https://gitlab.freedesktop.org/panfrost/linux/-/merge_req... For context, please see this previous patch: https://lore.kernel.org/rust-for-linux/20250621-gpuvm-v3-... and the commit message of the last patch. Signed-off-by: Alice Ryhl <aliceryhl@google.com> --- Alice Ryhl (4): drm/gpuvm: take GEM lock inside drm_gpuvm_bo_obtain_prealloc() drm/gpuvm: drm_gpuvm_bo_obtain() requires lock and staged mode drm/gpuvm: use const for drm_gpuva_op_* ptrs rust: drm: add GPUVM immediate mode abstraction MAINTAINERS | 1 + drivers/gpu/drm/drm_gpuvm.c | 80 ++++-- drivers/gpu/drm/imagination/pvr_vm.c | 2 +- drivers/gpu/drm/msm/msm_gem.h | 2 +- drivers/gpu/drm/msm/msm_gem_vma.c | 2 +- drivers/gpu/drm/nouveau/nouveau_uvmm.c | 2 +- drivers/gpu/drm/panthor/panthor_mmu.c | 10 - drivers/gpu/drm/xe/xe_vm.c | 4 +- include/drm/drm_gpuvm.h | 12 +- rust/bindings/bindings_helper.h | 2 + rust/helpers/drm_gpuvm.c | 43 +++ rust/helpers/helpers.c | 1 + rust/kernel/drm/gpuvm/mod.rs | 394 +++++++++++++++++++++++++++ rust/kernel/drm/gpuvm/sm_ops.rs | 469 +++++++++++++++++++++++++++++++++ rust/kernel/drm/gpuvm/va.rs | 148 +++++++++++ rust/kernel/drm/gpuvm/vm_bo.rs | 213 +++++++++++++++ rust/kernel/drm/mod.rs | 1 + 17 files changed, 1337 insertions(+), 49 deletions(-) --- base-commit: 77b686f688126a5f758b51441a03186e9eb1b0f1 change-id: 20251128-gpuvm-rust-b719cac27ad6 Best regards, -- Alice Ryhl <aliceryhl@google.com>
