drm/xe: Add outer runtime_pm protection to xe_live_ktest@xe_dma_buf
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 17 Apr 2024 20:39:52 +0000 (16:39 -0400)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 18 Apr 2024 12:31:40 +0000 (08:31 -0400)
Any kunit doing any memory access should get their own runtime_pm
outer references since they don't use the standard driver API
entries. In special this dma_buf from the same driver.

Found by pre-merge CI on adding WARN calls for unprotected
inner callers:

<6> [318.639739]     # xe_dma_buf_kunit: running xe_test_dmabuf_import_same_driver
<4> [318.639957] ------------[ cut here ]------------
<4> [318.639967] xe 0000:4d:00.0: Missing outer runtime PM protection
<4> [318.640049] WARNING: CPU: 117 PID: 3832 at drivers/gpu/drm/xe/xe_pm.c:533 xe_pm_runtime_get_noresume+0x48/0x60 [xe]

Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Francois Dugast <francois.dugast@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240417203952.25503-10-rodrigo.vivi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/tests/xe_dma_buf.c

index d54dd5b430079ddb1a4042e90e673946a8759cac..e7f9b531c4654799d1b000141c4a4a6034597cbb 100644 (file)
@@ -12,6 +12,7 @@
 #include "tests/xe_pci_test.h"
 
 #include "xe_pci.h"
+#include "xe_pm.h"
 
 static bool p2p_enabled(struct dma_buf_test_params *params)
 {
@@ -259,6 +260,7 @@ static int dma_buf_run_device(struct xe_device *xe)
        const struct dma_buf_test_params *params;
        struct kunit *test = xe_cur_kunit();
 
+       xe_pm_runtime_get(xe);
        for (params = test_params; params->mem_mask; ++params) {
                struct dma_buf_test_params p = *params;
 
@@ -266,6 +268,7 @@ static int dma_buf_run_device(struct xe_device *xe)
                test->priv = &p;
                xe_test_dmabuf_import_same_driver(xe);
        }
+       xe_pm_runtime_put(xe);
 
        /* A non-zero return would halt iteration over driver devices */
        return 0;