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/[email protected]/ [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) v5: - update zone_device_page_init() in patch #1 to reinitialize large zone device private folios v6: - fix drm_pagemap change in patch #1 to allow applying to 6.19 and add some comments v7: - now that patch #1 is merged, rebase and resend for CI 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 (1): drm/pagemap: Correct cpages calculation for migrate_vma_setup drivers/gpu/drm/drm_gpusvm.c | 7 +- drivers/gpu/drm/drm_pagemap.c | 158 +++++++++++++++++++++++++++------- include/drm/drm_pagemap.h | 14 +++ 3 files changed, 148 insertions(+), 31 deletions(-) -- 2.43.0
