[PATCH v4 0/7] Enable THP support in drm_pagemap
From: Francois Dugast <hidden>
Date: 2026-01-11 20:59:05
Also in:
amd-gfx, dri-devel, intel-xe, kvm, linux-cxl, linux-fsdevel, linux-mm, linux-pci, lkml, nouveau, nvdimm
Use Balbir Singh's series for device-private THP support [1] and previous preparation work in drm_pagemap [2] to add 2MB/THP support in xe. This leads to significant performance improvements when using SVM with 2MB pages. [1] https://lore.kernel.org/linux-mm/20251001065707.920170-1-balbirs@nvidia.com/ (local) [2] https://patchwork.freedesktop.org/series/151754/ v2: - rebase on top of multi-device SVM - add drm_pagemap_cpages() with temporary patch - address other feedback from Matt Brost on v1 v3: The major change is to remove the dependency to the mm/huge_memory helper migrate_device_split_page() that was called explicitely when a 2M buddy allocation backed by a large folio would be later reused for a smaller allocation (4K or 64K). Instead, the first 3 patches provided by Matthew Brost ensure large folios are split at the time of freeing. v4: - add order argument to folio_free callback - send complete series to linux-mm and MM folks as requested (Zi Yan and Andrew Morton) and cover letter to anyone receiving at least one of the patches (Liam R. Howlett) Cc: Zi Yan <ziy@nvidia.com> Cc: Madhavan Srinivasan <maddy@linux.ibm.com> Cc: Alistair Popple <apopple@nvidia.com> Cc: Lorenzo Stoakes <redacted> Cc: Liam R. Howlett <redacted> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport <rppt@kernel.org> Cc: Vlastimil Babka <redacted> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: "Christophe Leroy (CS GROUP)" <chleroy@kernel.org> Cc: Felix Kuehling <Felix.Kuehling@amd.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: David Airlie <airlied@gmail.com> Cc: Simona Vetter <simona@ffwll.ch> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Lyude Paul <lyude@redhat.com> Cc: Danilo Krummrich <dakr@kernel.org> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Logan Gunthorpe <logang@deltatee.com> Cc: David Hildenbrand <david@kernel.org> Cc: Oscar Salvador <osalvador@suse.de> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Jason Gunthorpe <jgg@ziepe.ca> Cc: Leon Romanovsky <leon@kernel.org> Cc: Balbir Singh <redacted> Cc: Dan Williams <redacted> Cc: Matthew Wilcox <willy@infradead.org> Cc: Jan Kara <jack@suse.cz> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Christian Brauner <brauner@kernel.org> Cc: linuxppc-dev@lists.ozlabs.org Cc: kvm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: amd-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org Cc: linux-pci@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-cxl@vger.kernel.org Cc: nvdimm@lists.linux.dev Cc: linux-fsdevel@vger.kernel.org Francois Dugast (3): drm/pagemap: Unlock and put folios when possible drm/pagemap: Add helper to access zone_device_data drm/pagemap: Enable THP support for GPU memory migration Matthew Brost (4): mm/zone_device: Add order argument to folio_free callback mm/zone_device: Add free_zone_device_folio_prepare() helper fs/dax: Use free_zone_device_folio_prepare() helper drm/pagemap: Correct cpages calculation for migrate_vma_setup arch/powerpc/kvm/book3s_hv_uvmem.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 2 +- drivers/gpu/drm/drm_gpusvm.c | 7 +- drivers/gpu/drm/drm_pagemap.c | 165 ++++++++++++++++++----- drivers/gpu/drm/nouveau/nouveau_dmem.c | 4 +- drivers/pci/p2pdma.c | 2 +- fs/dax.c | 24 +--- include/drm/drm_pagemap.h | 15 +++ include/linux/memremap.h | 8 +- lib/test_hmm.c | 4 +- mm/memremap.c | 60 ++++++++- 11 files changed, 227 insertions(+), 66 deletions(-) -- 2.43.0