[PATCH 0/4] Rust GPUVM support

Alice Ryhl posted 4 patches 3 days, 7 hours ago
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(-)
[PATCH 0/4] Rust GPUVM support
Posted by Alice Ryhl 3 days, 7 hours ago
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_requests/53

For context, please see this previous patch:
https://lore.kernel.org/rust-for-linux/20250621-gpuvm-v3-1-10203da06867@collabora.com/
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>