drm/i915: Give the invalid priority a magic name
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 28 Sep 2017 19:39:00 +0000 (20:39 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 29 Sep 2017 11:45:34 +0000 (12:45 +0100)
We use INT_MIN to denote the priority of a request that has not been
submitted to the scheduler; we treat INT_MIN as an invalid priority and
initialise the request to it. Give the value a name so it stands out.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170928193910.17988-3-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com
drivers/gpu/drm/i915/i915_gem_request.c
drivers/gpu/drm/i915/i915_gem_request.h
drivers/gpu/drm/i915/intel_lrc.c

index 4eb1a76731b2251c9bb8a67b0cbbf8098c4cece1..14956d89991103356573f322344a468674a6ddc4 100644 (file)
@@ -186,7 +186,7 @@ i915_priotree_init(struct i915_priotree *pt)
        INIT_LIST_HEAD(&pt->signalers_list);
        INIT_LIST_HEAD(&pt->waiters_list);
        INIT_LIST_HEAD(&pt->link);
-       pt->priority = INT_MIN;
+       pt->priority = I915_PRIORITY_INVALID;
 }
 
 static int reset_all_global_seqno(struct drm_i915_private *i915, u32 seqno)
index 96eb52471dad4f2af0ba2dfa15863d8861f66896..6b9e992d01debd4b6095f4dae2d50d1635782fde 100644 (file)
@@ -72,6 +72,7 @@ struct i915_priotree {
 #define I915_PRIORITY_MAX 1024
 #define I915_PRIORITY_NORMAL 0
 #define I915_PRIORITY_MIN (-I915_PRIORITY_MAX)
+#define I915_PRIORITY_INVALID INT_MIN
 };
 
 struct i915_gem_capture_list {
index cbac2fff8e4dd10c13286f26bca564df7e490d6e..303bb2c0b3ce29616b9f1752ed278f7196940021 100644 (file)
@@ -863,6 +863,8 @@ static void execlists_schedule(struct drm_i915_gem_request *request, int prio)
        struct i915_dependency stack;
        LIST_HEAD(dfs);
 
+       GEM_BUG_ON(prio == I915_PRIORITY_INVALID);
+
        if (prio <= READ_ONCE(request->priotree.priority))
                return;
 
@@ -911,7 +913,7 @@ static void execlists_schedule(struct drm_i915_gem_request *request, int prio)
         * execlists_submit_request()), we can set our own priority and skip
         * acquiring the engine locks.
         */
-       if (request->priotree.priority == INT_MIN) {
+       if (request->priotree.priority == I915_PRIORITY_INVALID) {
                GEM_BUG_ON(!list_empty(&request->priotree.link));
                request->priotree.priority = prio;
                if (stack.dfs_link.next == stack.dfs_link.prev)