if (err) {
range_debug(range, "PAGE FAULT - FAIL PAGE COLLECT");
goto out;
+ } else if (IS_ENABLED(CONFIG_DRM_XE_DEBUG_VM)) {
+ drm_dbg(&vm->xe->drm, "After page collect data location is %sin \"%s\".\n",
+ xe_svm_range_has_pagemap(range, dpagemap) ? "" : "NOT ",
+ dpagemap ? dpagemap->drm->unique : "System.");
}
xe_svm_range_get_pages_us_stats_incr(gt, range, get_pages_start);
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;
+
xe_assert(range_to_vm(&range->base)->xe, range->base.pages.flags.migrate_devmem);
range_debug(range, "ALLOCATE VRAM");
+ if (IS_ENABLED(CONFIG_DRM_XE_DEBUG_VM))
+ drm_dbg(&xe->drm, "Request migration to device memory on \"%s\".\n",
+ dpagemap->drm->unique);
+
return drm_pagemap_populate_mm(dpagemap, xe_svm_range_start(range),
xe_svm_range_end(range),
range->base.gpusvm->mm,
if (!dpagemap)
xe_svm_range_migrate_to_smem(vm, svm_range);
+ if (IS_ENABLED(CONFIG_DRM_XE_DEBUG_VM)) {
+ drm_dbg(&vm->xe->drm,
+ "Prefetch pagemap is %s start 0x%016lx end 0x%016lx\n",
+ dpagemap ? dpagemap->drm->unique : "system",
+ xe_svm_range_start(svm_range), xe_svm_range_end(svm_range));
+ }
+
if (xe_svm_range_needs_migrate_to_vram(svm_range, vma, dpagemap)) {
err = xe_svm_alloc_vram(svm_range, &ctx, dpagemap);
if (err) {