diff options
| author | Dave Airlie <airlied@redhat.com> | 2020-02-14 13:03:51 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2020-02-14 13:04:46 +1000 |
| commit | 6f4134b30b6ee33e2fd4d602099e6c5e60d0351a (patch) | |
| tree | 79ef7a82bcbf67d06f3e37de9271b9e80d0b9395 /drivers/gpu/drm/i915/i915_scheduler.c | |
| parent | e44c1e3a2941fa51d8a2455e61340309d49fc3a5 (diff) | |
| parent | 2aaaa5ee1c3d624a5bcad4ee25f954559c565bc2 (diff) | |
| download | lwn-6f4134b30b6ee33e2fd4d602099e6c5e60d0351a.tar.gz lwn-6f4134b30b6ee33e2fd4d602099e6c5e60d0351a.zip | |
Merge tag 'drm-intel-next-fixes-2020-02-13' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
drm/i915 fixes for v5.6-rc2
Most of these were aimed at a "next fixes" pull already during the merge
window, but there were issues with the baseline I used, which resulted
in a lot of issues in CI. I've regenerated this stuff piecemeal now,
adding gradually to it, and it seems healthy now.
Due to the issues this is much bigger than I'd like. But it was
obviously necessary to take the time to ensure it's not garbage...
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/878sl6yfrn.fsf@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/i915_scheduler.c')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_scheduler.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i915/i915_scheduler.c b/drivers/gpu/drm/i915/i915_scheduler.c index bf87c70bfdd9..5d96cfba40f8 100644 --- a/drivers/gpu/drm/i915/i915_scheduler.c +++ b/drivers/gpu/drm/i915/i915_scheduler.c @@ -326,20 +326,18 @@ static void __i915_schedule(struct i915_sched_node *node, node->attr.priority = prio; - if (list_empty(&node->link)) { - /* - * If the request is not in the priolist queue because - * it is not yet runnable, then it doesn't contribute - * to our preemption decisions. On the other hand, - * if the request is on the HW, it too is not in the - * queue; but in that case we may still need to reorder - * the inflight requests. - */ + /* + * Once the request is ready, it will be placed into the + * priority lists and then onto the HW runlist. Before the + * request is ready, it does not contribute to our preemption + * decisions and we can safely ignore it, as it will, and + * any preemption required, be dealt with upon submission. + * See engine->submit_request() + */ + if (list_empty(&node->link)) continue; - } - if (!intel_engine_is_virtual(engine) && - !i915_request_is_active(node_to_request(node))) { + if (i915_request_in_priority_queue(node_to_request(node))) { if (!cache.priolist) cache.priolist = i915_sched_lookup_priolist(engine, |
