drm/xe: Use q->xef for accessing xe file
authorLucas De Marchi <lucas.demarchi@intel.com>
Wed, 18 Dec 2024 05:31:22 +0000 (21:31 -0800)
committerLucas De Marchi <lucas.demarchi@intel.com>
Sat, 21 Dec 2024 00:44:34 +0000 (16:44 -0800)
No need to traverse through the vm object as each exec queue maintains a
reference to xe_file. Also improve/simplify the comment on why xef is
checked.

Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241218053122.2730195-2-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_exec_queue.c

index 8005530b5e51e9af71327183f23cca79da14c510..8948f50ee58ff29cd8cac343eb79fa0a6ccf100b 100644 (file)
@@ -770,25 +770,21 @@ bool xe_exec_queue_is_idle(struct xe_exec_queue *q)
 void xe_exec_queue_update_run_ticks(struct xe_exec_queue *q)
 {
        struct xe_device *xe = gt_to_xe(q->gt);
-       struct xe_file *xef;
        struct xe_lrc *lrc;
        u32 old_ts, new_ts;
        int idx;
 
        /*
-        * Jobs that are run during driver load may use an exec_queue, but are
-        * not associated with a user xe file, so avoid accumulating busyness
-        * for kernel specific work.
+        * Jobs that are executed by kernel doesn't have a corresponding xe_file
+        * and thus are not accounted.
         */
-       if (!q->vm || !q->vm->xef)
+       if (!q->xef)
                return;
 
        /* Synchronize with unbind while holding the xe file open */
        if (!drm_dev_enter(&xe->drm, &idx))
                return;
 
-       xef = q->vm->xef;
-
        /*
         * Only sample the first LRC. For parallel submission, all of them are
         * scheduled together and we compensate that below by multiplying by
@@ -799,7 +795,7 @@ void xe_exec_queue_update_run_ticks(struct xe_exec_queue *q)
         */
        lrc = q->lrc[0];
        new_ts = xe_lrc_update_timestamp(lrc, &old_ts);
-       xef->run_ticks[q->class] += (new_ts - old_ts) * q->width;
+       q->xef->run_ticks[q->class] += (new_ts - old_ts) * q->width;
 
        drm_dev_exit(idx);
 }