All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/6] drm/gem-shmem: Track page accessed/dirty status
@ 2026-02-27 11:42 Thomas Zimmermann
  2026-02-27 11:42 ` [PATCH v4 1/6] drm/gem-shmem: Use obj directly where appropriate in fault handler Thomas Zimmermann
                   ` (5 more replies)
  0 siblings, 6 replies; 35+ messages in thread
From: Thomas Zimmermann @ 2026-02-27 11:42 UTC (permalink / raw)
  To: boris.brezillon, loic.molinari, willy, frank.binns, matt.coster,
	maarten.lankhorst, mripard, airlied, simona, linux-mm
  Cc: dri-devel, 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 to 4 prepare the mmap page-fault handler for tracking page
status easily. The pages are already available; only the mmap handling
needs to be adapted. The way the shmem code interacts with huge-page
support is also not optimal, hence refactor it slightly.

Patch 5 adds tracking access and dirty status in mmap. With the earlier
patches, this change simply falls into place.

Patch 6 adds tracking access and dirty status in vmap. Because 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.

v4:
- mark folio as accessed on VM_FAULT_NOPAGE (Boris)
- validate state in mkwrite (Boris)
v3:
- rewrite for VM_PFNMAP
- do more preparational patches
v2:
- fix possible OOB access into page array (Matthew)
- simplify fault-handler error handling (Boris)
- simplify internal interfaces (Matthew)

Thomas Zimmermann (6):
  drm/gem-shmem: Use obj directly where appropriate in fault handler
  drm/gem-shmem: Test for existence of page in mmap fault handler
  drm/gem-shmem: Return vm_fault_t from drm_gem_shmem_try_map_pmd()
  drm/gem-shmem: Refactor drm_gem_shmem_try_map_pmd()
  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 | 79 +++++++++++++++++---------
 drivers/gpu/drm/imagination/pvr_gem.c  |  6 +-
 2 files changed, 55 insertions(+), 30 deletions(-)


base-commit: 1c44015babd759b8e5234084dffcc08a0b784333
-- 
2.52.0



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

end of thread, other threads:[~2026-03-19 14:53 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-27 11:42 [PATCH v4 0/6] drm/gem-shmem: Track page accessed/dirty status Thomas Zimmermann
2026-02-27 11:42 ` [PATCH v4 1/6] drm/gem-shmem: Use obj directly where appropriate in fault handler Thomas Zimmermann
2026-02-27 11:42 ` [PATCH v4 2/6] drm/gem-shmem: Test for existence of page in mmap " Thomas Zimmermann
2026-02-27 11:42 ` [PATCH v4 3/6] drm/gem-shmem: Return vm_fault_t from drm_gem_shmem_try_map_pmd() Thomas Zimmermann
2026-02-27 11:42 ` [PATCH v4 4/6] drm/gem-shmem: Refactor drm_gem_shmem_try_map_pmd() Thomas Zimmermann
2026-02-27 11:42 ` [PATCH v4 5/6] drm/gem-shmem: Track folio accessed/dirty status in mmap Thomas Zimmermann
2026-03-12 17:36   ` Tommaso Merciai
2026-03-12 17:46     ` Biju Das
2026-03-13  6:44       ` Biju Das
2026-03-13  8:00         ` Thomas Zimmermann
2026-03-13  8:41           ` Biju Das
2026-03-13 10:03           ` Biju Das
2026-03-13 10:18         ` Boris Brezillon
2026-03-13 10:29           ` Thomas Zimmermann
2026-03-13 10:33             ` Biju Das
2026-03-13 10:52             ` Boris Brezillon
2026-03-13 11:56             ` Boris Brezillon
2026-03-13 12:04               ` Biju Das
2026-03-13 12:18                 ` Boris Brezillon
2026-03-13 12:43                   ` Boris Brezillon
2026-03-13 12:55                     ` Boris Brezillon
2026-03-13 17:45                       ` Boris Brezillon
2026-03-14  9:42                         ` Biju Das
2026-03-19 14:17                           ` Biju Das
2026-03-19 14:50                             ` Boris Brezillon
2026-03-19 14:53                               ` Biju Das
2026-03-16  8:45                         ` Thomas Zimmermann
2026-03-16  9:36                           ` Boris Brezillon
2026-03-16 10:22                             ` Thomas Zimmermann
2026-03-16 10:53                               ` Boris Brezillon
2026-03-16 15:30                           ` Boris Brezillon
2026-03-13  8:33       ` Thomas Zimmermann
2026-03-13  8:47         ` Biju Das
2026-03-13  9:24         ` Tommaso Merciai
2026-02-27 11:42 ` [PATCH v4 6/6] 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.