]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/guc_submit: Simplify and fix diff calculation
authorLucas De Marchi <lucas.demarchi@intel.com>
Tue, 13 May 2025 14:25:49 +0000 (07:25 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Thu, 15 May 2025 13:14:17 +0000 (06:14 -0700)
With a u32 type, there's no need to check which one is greater: the
current is always the latest and if it's less than the previous, it's
because it wrapped: just do the unsigned calculation that will lead to
the same result, or better the correct one. It fixes an off-by-one in
the wrapped calculation, however that doesn't really matter for the
timeout calculation.

Reviewed-by: Raag Jadav <raag.jadav@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20250513-time-wrap-v1-1-fba9a69a65c8@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_guc_submit.c

index fb125f940de8ffb1c8e3533f2f6878a4e98ca337..80f748baad3f31472ac51f6ee6441c1fc76c3904 100644 (file)
@@ -976,10 +976,7 @@ static bool check_timeout(struct xe_exec_queue *q, struct xe_sched_job *job)
         */
        xe_gt_assert(gt, timeout_ms < 100 * MSEC_PER_SEC);
 
-       if (ctx_timestamp < ctx_job_timestamp)
-               diff = ctx_timestamp + U32_MAX - ctx_job_timestamp;
-       else
-               diff = ctx_timestamp - ctx_job_timestamp;
+       diff = ctx_timestamp - ctx_job_timestamp;
 
        /*
         * Ensure timeout is within 5% to account for an GuC scheduling latency