dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] drm/nouveau: Enable variable page sizes and compression
@ 2025-10-06 19:13 Mohamed Ahmed
  2025-10-06 19:13 ` [PATCH 1/5] drm/nouveau/uvmm: Prepare for larger pages Mohamed Ahmed
                   ` (4 more replies)
  0 siblings, 5 replies; 20+ messages in thread
From: Mohamed Ahmed @ 2025-10-06 19:13 UTC (permalink / raw)
  To: linux-kernel; +Cc: dri-devel, Mary Guillemard, Faith Ekstrand, Mohamed Ahmed

The new VM_BIND interface only supported 4K pages. This was problematic as
it leaves performance on the table because GPUs don't have sophisticated
TLB hardware. Additionally, this meant that we couldn't enable compression
on the userspace side as the HW supports compression on larger page sizes
only which was a major (>50% in some cases) performance loss.

This patchset sets out to add support for larger page sizes and also
enable compression when userspace binds with the corresponding PTE kinds
and alignment.

Ben Skeggs (2):
  drm/nouveau/mmu/gp100: Remove unused/broken support for compression
  drm/nouveau/mmu/tu102: Add support for compressed kinds

Mary Guillemard (2):
  drm/nouveau/uvmm: Prepare for larger pages
  drm/nouveau/uvmm: Allow larger pages

Mohamed Ahmed (1):
  drm/nouveau/drm: Bump the driver version to 1.4.1 to report new
    features

 drivers/gpu/drm/nouveau/nouveau_drv.h         |   4 +-
 drivers/gpu/drm/nouveau/nouveau_uvmm.c        | 106 ++++++++++++++----
 drivers/gpu/drm/nouveau/nouveau_uvmm.h        |   1 +
 .../drm/nouveau/nvkm/subdev/mmu/vmmgp100.c    |  69 +++++++-----
 .../drm/nouveau/nvkm/subdev/mmu/vmmgp10b.c    |   4 +-
 5 files changed, 131 insertions(+), 53 deletions(-)

-- 
2.51.0


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [PATCH 0/5 v2] drm/nouveau: Enable variable page sizes and compression
@ 2025-10-09 23:38 Mohamed Ahmed
  2025-10-09 23:38 ` [PATCH 2/5] drm/nouveau/uvmm: Allow larger pages Mohamed Ahmed
  0 siblings, 1 reply; 20+ messages in thread
From: Mohamed Ahmed @ 2025-10-09 23:38 UTC (permalink / raw)
  To: linux-kernel
  Cc: dri-devel, Mary Guillemard, Faith Ekstrand, Lyude Paul,
	Danilo Krummrich, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, nouveau,
	Mohamed Ahmed

The new VM_BIND interface only supported 4K pages. This was problematic as
it left performance on the table because GPUs don't have sophisticated TLB
and page walker hardware. 

Additionally, the HW can only do compression on large (64K) and huge (2M)
pages, which is a major performance booster (>50% in some cases).

This patchset sets out to add support for larger page sizes and also
enable compression and set the compression tags when userspace binds with
the corresponding PTE kinds and alignment. It also increments the nouveau
version number which allows userspace to use compression only when the
kernel actually supports both features and avoid breaking the system if a
newer mesa version is paired with an older kernel version.

For the associated userspace MR, please see !36450:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450

- v2: Implement review comments.
- v1: Initial implementation.

Ben Skeggs (2):
  drm/nouveau/mmu/gp100: Remove unused/broken support for compression
  drm/nouveau/mmu/tu102: Add support for compressed kinds

Mary Guillemard (2):
  drm/nouveau/uvmm: Prepare for larger pages
  drm/nouveau/uvmm: Allow larger pages

Mohamed Ahmed (1):
  drm/nouveau/drm: Bump the driver version to 1.4.1 to report new
    features

 drivers/gpu/drm/nouveau/nouveau_drv.h         |  4 +-
 drivers/gpu/drm/nouveau/nouveau_uvmm.c        | 71 ++++++++++++++-----
 drivers/gpu/drm/nouveau/nouveau_uvmm.h        |  1 +
 .../drm/nouveau/nvkm/subdev/mmu/vmmgp100.c    | 69 ++++++++++--------
 .../drm/nouveau/nvkm/subdev/mmu/vmmgp10b.c    |  4 +-
 5 files changed, 100 insertions(+), 49 deletions(-)

-- 
2.51.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2025-10-24 18:38 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-06 19:13 [PATCH 0/5] drm/nouveau: Enable variable page sizes and compression Mohamed Ahmed
2025-10-06 19:13 ` [PATCH 1/5] drm/nouveau/uvmm: Prepare for larger pages Mohamed Ahmed
2025-10-06 19:13 ` [PATCH 2/5] drm/nouveau/uvmm: Allow " Mohamed Ahmed
2025-10-06 20:26   ` Danilo Krummrich
2025-10-09 16:51     ` Mohamed Ahmed
2025-10-09 20:09       ` Danilo Krummrich
2025-10-09 23:40         ` Mohamed Ahmed
2025-10-06 19:13 ` [PATCH 3/5] drm/nouveau/mmu/gp100: Remove unused/broken support for compression Mohamed Ahmed
2025-10-06 20:27   ` Danilo Krummrich
2025-10-06 19:13 ` [PATCH 4/5] drm/nouveau/mmu/tu102: Add support for compressed kinds Mohamed Ahmed
2025-10-06 19:13 ` [PATCH 5/5] drm/nouveau/drm: Bump the driver version to 1.4.1 to report new features Mohamed Ahmed
2025-10-06 20:29   ` Danilo Krummrich
  -- strict thread matches above, loose matches on Subject: below --
2025-10-09 23:38 [PATCH 0/5 v2] drm/nouveau: Enable variable page sizes and compression Mohamed Ahmed
2025-10-09 23:38 ` [PATCH 2/5] drm/nouveau/uvmm: Allow larger pages Mohamed Ahmed
2025-10-22 10:16   ` Mohamed Ahmed
2025-10-22 20:56     ` Danilo Krummrich
2025-10-22 21:09       ` Lyude Paul
2025-10-22 21:39       ` Mary Guillemard
2025-10-23 10:14         ` Mohamed Ahmed
2025-10-23 20:51           ` Lyude Paul
2025-10-24 18:38             ` M Henning

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).