]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gt: Check for a completed last request once
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 26 Nov 2020 14:04:04 +0000 (14:04 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 26 Nov 2020 18:26:02 +0000 (18:26 +0000)
commit6d13cd7ab961c9abccc12edd5dea69e0cadef696
treeccdb8bac9ce19fc0217e51769ed3100fd39135ae
parent3ed6352d5eba41bce6c0e944d6976a07358e1ba2
drm/i915/gt: Check for a completed last request once

Pull the repeated check for the last active request being completed to a
single spot, when deciding whether or not execlist preemption is
required.

In doing so, we remove the tasklet kick, introduced with the completion
checks in commit 5c35399b3ef1 ("drm/i915/execlists: Workaround switching
back to a completed context"), if we find the request was completed but
have not yet seen the corresponding CS event. This was devolving into a
busy spin of the tasklet while we waited for the event as the delivery
was not as instantaneous as expected. Under load this is sufficient to
exhaust the tasklet softirq timeslice, and force ksoftirqd. Quite
noticeable overhead for no apparent improvement in latency.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201126140407.31952-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_lrc.c