linux_dsm_epyc7002/drivers/gpu
Chris Wilson 1e3f697e47 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 <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190301170901.8340-1-chris@chris-wilson.co.uk
2019-03-01 17:40:32 +00:00
..
drm drm/i915/execlists: Suppress redundant preemption 2019-03-01 17:40:32 +00:00
host1x gpu: host1x: Continue CDMA execution starting with a next job 2019-02-07 18:34:25 +01:00
ipu-v3 gpu: ipu-v3: pre: don't trigger update if buffer address doesn't change 2019-01-23 11:56:44 +01:00
vga vga-switcheroo: make PCI dependency explicit 2019-01-15 23:16:47 +01:00
Makefile