All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] drm/gem-shmem: Track page accessed/dirty status
@ 2026-02-04 11:39 Thomas Zimmermann
  2026-02-04 11:39 ` [PATCH v2 1/4] drm/gem-shmem: Return vm_fault_t from drm_gem_shmem_try_map_pmd() Thomas Zimmermann
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Thomas Zimmermann @ 2026-02-04 11:39 UTC (permalink / raw)
  To: boris.brezillon, loic.molinari, willy, frank.binns, matt.coster,
	maarten.lankhorst, mripard, airlied, simona
  Cc: dri-devel, linux-mm, Thomas Zimmermann

Track page access/dirty status in gem-shmem for better integration with
the overall memory management. Gem-shmem has long had two flag bits in
struct drm_gem_shmem_object, named pages_mark_accessed_on_put and
pages_mark_dirty_on_put, but never used them much; except for some odd
cases in drivers. Therefore pages in gem-shmem where never marked
correctly. (Other DRM memory managers do some course-grain tracking at
least).

Patches 1 and 2 switch from PFN-based mapping to page mapping. The pages
are already available; only the mmap handling needs to be adapted.

Patch 3 adds tracking access and dirty status in mmap.

Patch 4 adds tracking access and dirty status in vmap. Becasue there's
no fault handling here, we refer to the existing status bits in struct
drm_gem_shmem_object. Each page's status will be updated by the page
release in drm_gem_put_pages(). The imagination driver requires a small
fix to make it work correctly.

Tested with CONFIG_VM=y by running animations on DRM's bochs driver for
several hours. This uses gem-shmem's mmap and vmap extensively.

v2:
- fix possible OOB access into page array (Matthew)
- simplify fault-handler error handling (Boris)
- simplify internal interfaces (Matthew)

Thomas Zimmermann (4):
  drm/gem-shmem: Return vm_fault_t from drm_gem_shmem_try_map_pmd()
  drm/gem-shmem: Map pages in mmap fault handler
  drm/gem-shmem: Track folio accessed/dirty status in mmap
  drm/gem-shmem: Track folio accessed/dirty status in vmap

 drivers/gpu/drm/drm_gem_shmem_helper.c | 77 ++++++++++++++++++--------
 drivers/gpu/drm/imagination/pvr_gem.c  |  6 +-
 2 files changed, 57 insertions(+), 26 deletions(-)


base-commit: 6e53f6296065672f8a0c7f98b4b6c409dac382b4
-- 
2.52.0



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

end of thread, other threads:[~2026-02-09  8:46 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-04 11:39 [PATCH v2 0/4] drm/gem-shmem: Track page accessed/dirty status Thomas Zimmermann
2026-02-04 11:39 ` [PATCH v2 1/4] drm/gem-shmem: Return vm_fault_t from drm_gem_shmem_try_map_pmd() Thomas Zimmermann
2026-02-04 13:58   ` Boris Brezillon
2026-02-04 11:39 ` [PATCH v2 2/4] drm/gem-shmem: Map pages in mmap fault handler Thomas Zimmermann
2026-02-04 16:03   ` Matthew Wilcox
2026-02-09  8:46     ` Thomas Zimmermann
2026-02-04 11:39 ` [PATCH v2 3/4] drm/gem-shmem: Track folio accessed/dirty status in mmap Thomas Zimmermann
2026-02-04 11:39 ` [PATCH v2 4/4] drm/gem-shmem: Track folio accessed/dirty status in vmap Thomas Zimmermann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.