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. 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: Add folio_split_unref helper fs/dax: Use folio_split_unref helper mm: Split device-private and coherent folios before freeing drm/pagemap: Correct cpages calculation for migrate_vma_setup drivers/gpu/drm/drm_gpusvm.c | 7 +- drivers/gpu/drm/drm_pagemap.c | 154 ++++++++++++++++++++++++++++------ fs/dax.c | 25 +----- include/drm/drm_pagemap.h | 15 ++++ include/linux/huge_mm.h | 1 + mm/huge_memory.c | 39 +++++++++ mm/memremap.c | 2 + 7 files changed, 190 insertions(+), 53 deletions(-) -- 2.43.0
