mirror of https://gitee.com/openkylin/linux.git
drm/i915: Give the invalid priority a magic name
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
This commit is contained in:
parent
7e4992ac04
commit
7d1ea609f6
|
@ -186,7 +186,7 @@ i915_priotree_init(struct i915_priotree *pt)
|
||||||
INIT_LIST_HEAD(&pt->signalers_list);
|
INIT_LIST_HEAD(&pt->signalers_list);
|
||||||
INIT_LIST_HEAD(&pt->waiters_list);
|
INIT_LIST_HEAD(&pt->waiters_list);
|
||||||
INIT_LIST_HEAD(&pt->link);
|
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)
|
static int reset_all_global_seqno(struct drm_i915_private *i915, u32 seqno)
|
||||||
|
|
|
@ -72,6 +72,7 @@ struct i915_priotree {
|
||||||
#define I915_PRIORITY_MAX 1024
|
#define I915_PRIORITY_MAX 1024
|
||||||
#define I915_PRIORITY_NORMAL 0
|
#define I915_PRIORITY_NORMAL 0
|
||||||
#define I915_PRIORITY_MIN (-I915_PRIORITY_MAX)
|
#define I915_PRIORITY_MIN (-I915_PRIORITY_MAX)
|
||||||
|
#define I915_PRIORITY_INVALID INT_MIN
|
||||||
};
|
};
|
||||||
|
|
||||||
struct i915_gem_capture_list {
|
struct i915_gem_capture_list {
|
||||||
|
|
|
@ -863,6 +863,8 @@ static void execlists_schedule(struct drm_i915_gem_request *request, int prio)
|
||||||
struct i915_dependency stack;
|
struct i915_dependency stack;
|
||||||
LIST_HEAD(dfs);
|
LIST_HEAD(dfs);
|
||||||
|
|
||||||
|
GEM_BUG_ON(prio == I915_PRIORITY_INVALID);
|
||||||
|
|
||||||
if (prio <= READ_ONCE(request->priotree.priority))
|
if (prio <= READ_ONCE(request->priotree.priority))
|
||||||
return;
|
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
|
* execlists_submit_request()), we can set our own priority and skip
|
||||||
* acquiring the engine locks.
|
* 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));
|
GEM_BUG_ON(!list_empty(&request->priotree.link));
|
||||||
request->priotree.priority = prio;
|
request->priotree.priority = prio;
|
||||||
if (stack.dfs_link.next == stack.dfs_link.prev)
|
if (stack.dfs_link.next == stack.dfs_link.prev)
|
||||||
|
|
Loading…
Reference in New Issue