mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
drm/xe: Use drm_gpusvm_scan_mm()
Use drm_gpusvm_scan_mm() to avoid unnecessarily calling into drm_pagemap_populate_mm(); v3: - New patch. Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> Link: https://patch.msgid.link/20251219113320.183860-22-thomas.hellstrom@linux.intel.com
This commit is contained in:
parent
f1d08a5864
commit
0471ed20df
|
|
@ -1590,11 +1590,23 @@ struct drm_pagemap *xe_vma_resolve_pagemap(struct xe_vma *vma, struct xe_tile *t
|
|||
int xe_svm_alloc_vram(struct xe_svm_range *range, const struct drm_gpusvm_ctx *ctx,
|
||||
struct drm_pagemap *dpagemap)
|
||||
{
|
||||
struct xe_device *xe = range_to_vm(&range->base)->xe;
|
||||
struct xe_vm *vm = range_to_vm(&range->base);
|
||||
enum drm_gpusvm_scan_result migration_state;
|
||||
struct xe_device *xe = vm->xe;
|
||||
|
||||
xe_assert(range_to_vm(&range->base)->xe, range->base.pages.flags.migrate_devmem);
|
||||
range_debug(range, "ALLOCATE VRAM");
|
||||
|
||||
migration_state = drm_gpusvm_scan_mm(&range->base,
|
||||
xe_svm_private_page_owner(vm, false),
|
||||
dpagemap->pagemap);
|
||||
|
||||
if (migration_state == DRM_GPUSVM_SCAN_EQUAL) {
|
||||
if (IS_ENABLED(CONFIG_DRM_XE_DEBUG_VM))
|
||||
drm_dbg(dpagemap->drm, "Already migrated!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (IS_ENABLED(CONFIG_DRM_XE_DEBUG_VM))
|
||||
drm_dbg(&xe->drm, "Request migration to device memory on \"%s\".\n",
|
||||
dpagemap->drm->unique);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user