drm/xe/selftests: hold rpm for evict_test_run_device()
authorMatthew Auld <matthew.auld@intel.com>
Wed, 12 Jul 2023 16:28:39 +0000 (17:28 +0100)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 21 Dec 2023 16:37:36 +0000 (11:37 -0500)
We are calling fairly low level things like xe_bo_restore_kernel() which
expect caller to be holding mem_access.ref. Since we are doing stuff
like evict_all we likely don't want to race with rpm suspend, since that
potentially wants to do the same thing, so just wrap the whole test.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/tests/xe_bo.c

index 5309204d8d1b18b771d283f6c4689fcca9404742..a63f7a447ca45a63961b8d8e06d4022bd5476d6f 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "xe_bo_evict.h"
 #include "xe_pci.h"
+#include "xe_pm.h"
 
 static int ccs_test_migrate(struct xe_gt *gt, struct xe_bo *bo,
                            bool clear, u64 get_val, u64 assign_val,
@@ -295,9 +296,13 @@ static int evict_test_run_device(struct xe_device *xe)
                return 0;
        }
 
+       xe_device_mem_access_get(xe);
+
        for_each_gt(gt, xe, id)
                evict_test_run_gt(xe, gt, test);
 
+       xe_device_mem_access_put(xe);
+
        return 0;
 }