[Intel-gfx] ksoftirqd avoidance

Chris Wilson chris at chris-wilson.co.uk
Thu May 31 18:51:53 UTC 2018


This is the same as the last posting, but hopefully now all the ground
work is inplace that we get through CI cleanly (gem_eio is the bane of
my existence).

The goal of the patchset is to eliminate high latencies caused by
execlists_submission_tasklet being deferred to ksoftirqd and scheduled
as a normal task. This is achieved by writing to the ELSP directly from
the process submitting the new work. From irq context, we continue to
use the tasklet, so that we don't starve other users of the system, as
here we expect to keep the hw supplied with a pair of contexts so that
it has a request to work on as we queue the next, a slight delay in
our processing of the irq should not result in a GPU stall.

The consequence of rearranging the work to be split between different
contexts is that we end up with even more under an irqsoff spinlock. To
address this raise upon impact on the rest of the system (as well as
worrying about contention between ourselves), we first make sure that we
eliminate all unnecessary mmio and especially the forcewake. Later we
apply some more microoptimisations -- that aren't so micro at the
microsecond latency level!
-Chris




More information about the Intel-gfx mailing list