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: Thomas Hellström <[email protected]>
Reviewed-by: Matthew Brost <[email protected]> #v1
---
 drivers/gpu/drm/xe/xe_svm.c | 10 ++++++++++
 drivers/gpu/drm/xe/xe_vm.c  |  7 +++++++
 2 files changed, 17 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_svm.c b/drivers/gpu/drm/xe/xe_svm.c
index 86d7b0882b60..0b39905c9312 100644
--- a/drivers/gpu/drm/xe/xe_svm.c
+++ b/drivers/gpu/drm/xe/xe_svm.c
@@ -1246,6 +1246,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);
@@ -1541,9 +1545,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,
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 85c2c1dea26f..4c628c8b644b 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -2911,6 +2911,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) {
-- 
2.51.1

Reply via email to