Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/9] drm/xe/madvise: Add support for purgeable buffer objects
@ 2025-10-28 12:24 Arvind Yadav
  2025-10-28 12:24 ` [RFC PATCH 1/9] drm/xe/uapi: Add UAPI " Arvind Yadav
                   ` (13 more replies)
  0 siblings, 14 replies; 22+ messages in thread
From: Arvind Yadav @ 2025-10-28 12:24 UTC (permalink / raw)
  To: intel-xe; +Cc: matthew.brost, himal.prasad.ghimiray, thomas.hellstrom

This patch series introduces support for purgeable buffer objects (BOs) in the Xe driver. 
This feature allows userspace applications to provide memory usage hints to the kernel,
enabling more effective memory management, especially under system memory pressure.

When an application no longer needs the contents of a buffer, it can mark it as DONTNEED
via the DRM_XE_MADVISE ioctl. This makes the BO a candidate for purging. If the kernel
experiences memory pressure, it can reclaim the backing store of these BOs,
freeing up GPU memory and helping to prevent Out-Of-Memory (OOM) situations.

The lifecycle of a purgeable BO is as follows:

A BO starts in the default WILLNEED state.
Userspace marks it as DONTNEED when its contents are discardable.
Under memory pressure, the kernel may purge the BO, transitioning it to the PURGED state.
Any attempt to use a purged BO (e.g., binding, mapping, or CPU access) will result in an error,
signaling to the application that the contents are gone. The application can then re-validate
the BO by marking it WILLNEED, at which point new backing store is allocated. To prevent data corruption,
a critical safety check ensures that only non-shared buffers can be marked as purgeable. 

Arvind Yadav (7):
  drm/xe/bo: Add purgeable bo state tracking and field madv to xe_bo
  drm/xe/madvise: Implement purgeable buffer object support
  drm/xe/bo: Prevent purging of shared buffer objects
  drm/xe/bo: Handle CPU faults on purged buffer objects
  drm/xe/bo: Prevent mmap of purged buffer objects
  drm/xe/vm: Prevent binding of purged buffer objects
  drm/xe: Add support for querying purgeable BO states

Himal Prasad Ghimiray (2):
  drm/xe/uapi: Add UAPI support for purgeable buffer objects
  drm/xe/uapi: Add UAPI for purgeable bo state to madvise query response

 drivers/gpu/drm/xe/xe_bo.c         | 91 ++++++++++++++++++++++++++----
 drivers/gpu/drm/xe/xe_bo.h         | 51 +++++++++++++++++
 drivers/gpu/drm/xe/xe_bo_types.h   |  3 +
 drivers/gpu/drm/xe/xe_vm.c         | 11 ++++
 drivers/gpu/drm/xe/xe_vm_madvise.c | 67 ++++++++++++++++++++++
 include/uapi/drm/xe_drm.h          | 34 +++++++++++
 6 files changed, 245 insertions(+), 12 deletions(-)

-- 
2.43.0


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

end of thread, other threads:[~2025-11-06  9:58 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-28 12:24 [RFC PATCH 0/9] drm/xe/madvise: Add support for purgeable buffer objects Arvind Yadav
2025-10-28 12:24 ` [RFC PATCH 1/9] drm/xe/uapi: Add UAPI " Arvind Yadav
2025-10-28 12:24 ` [RFC PATCH 2/9] drm/xe/bo: Add purgeable bo state tracking and field madv to xe_bo Arvind Yadav
2025-10-28 12:24 ` [RFC PATCH 3/9] drm/xe/madvise: Implement purgeable buffer object support Arvind Yadav
2025-10-29  8:55   ` Thomas Hellström
2025-10-29 10:51     ` Thomas Hellström
2025-10-30  7:03       ` Yadav, Arvind
2025-10-30  8:17         ` Thomas Hellström
2025-11-06  9:58           ` Yadav, Arvind
2025-10-28 12:24 ` [RFC PATCH 4/9] drm/xe/bo: Prevent purging of shared buffer objects Arvind Yadav
2025-10-28 12:24 ` [RFC PATCH 5/9] drm/xe/bo: Handle CPU faults on purged " Arvind Yadav
2025-10-28 12:24 ` [RFC PATCH 6/9] drm/xe/bo: Prevent mmap of " Arvind Yadav
2025-10-28 12:24 ` [RFC PATCH 7/9] drm/xe/vm: Prevent binding " Arvind Yadav
2025-10-28 12:24 ` [RFC PATCH 8/9] drm/xe/uapi: Add UAPI for purgeable bo state to madvise query response Arvind Yadav
2025-10-28 12:24 ` [RFC PATCH 9/9] drm/xe: Add support for querying purgeable BO states Arvind Yadav
2025-10-28 12:37 ` [RFC PATCH 0/9] drm/xe/madvise: Add support for purgeable buffer objects Thomas Hellström
2025-10-28 13:02   ` Matthew Auld
2025-10-29  8:40     ` Yadav, Arvind
2025-10-28 13:23 ` ✗ CI.checkpatch: warning for " Patchwork
2025-10-28 13:24 ` ✓ CI.KUnit: success " Patchwork
2025-10-28 14:12 ` ✗ Xe.CI.BAT: failure " Patchwork
2025-10-28 19:44 ` ✗ Xe.CI.Full: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox