diff options
| author | Chris Wilson <[email protected]> | 2019-03-01 17:08:58 +0000 |
|---|---|---|
| committer | Chris Wilson <[email protected]> | 2019-03-01 17:40:32 +0000 |
| commit | 1e3f697e47f61293351c72c35e3045b1774851c2 (patch) | |
| tree | 941cc80dfc187a58352b5855f189a817e3548f0d /tools/perf/scripts/python | |
| parent | 34ae8455f4d30ddc7c26d914d0f246de37488a99 (diff) | |
drm/i915/execlists: Suppress redundant preemption
On unwinding the active request we give it a small (limited to internal
priority levels) boost to prevent it from being gazumped a second time.
However, this means that it can be promoted to above the request that
triggered the preemption request, causing a preempt-to-idle cycle for no
change. We can avoid this if we take the boost into account when
checking if the preemption request is valid.
v2: After preemption the active request will be after the preemptee if
they end up with equal priority.
v3: Tvrtko pointed out that this, the existing logic, makes
I915_PRIORITY_WAIT non-preemptible. Document this interesting quirk!
v4: Prove Tvrtko was right about WAIT being non-preemptible and test it.
v5: Except not all priorities were made equal, and the WAIT not preempting
is only if we start off as !NEWCLIENT.
v6: More commentary after coming to an understanding about what I had
forgotten to say.
Signed-off-by: Chris Wilson <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
Reviewed-by: Tvrtko Ursulin <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions