Commit 54dc5842 authored by Thomas Hellström's avatar Thomas Hellström
Browse files

drm/xe/vm: Add a couple of VM debug printouts



Add debug printouts that are valueable for pagemap prefetch,
migration and page collection.

v2:
- Add additional debug prinouts around migration and page collection.
- Require CONFIG_DRM_XE_DEBUG_VM.

Signed-off-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com> #v1
Link: https://patch.msgid.link/20251219113320.183860-18-thomas.hellstrom@linux.intel.com
parent 2df55d9e
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1271,6 +1271,10 @@ static int __xe_svm_handle_pagefault(struct xe_vm *vm, struct xe_vma *vma,
	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);
@@ -1566,9 +1570,15 @@ 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;

	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,
+7 −0
Original line number Diff line number Diff line
@@ -2931,6 +2931,13 @@ static int prefetch_ranges(struct xe_vm *vm, struct xe_vma_op *op)
		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) {