drm/i915/perf: Schedule oa_config after modifying the contexts
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 27 Mar 2020 11:22:12 +0000 (11:22 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 30 Mar 2020 17:20:34 +0000 (18:20 +0100)
commitd7d50f801d445f9f17221573c2eda9f7b23fb891
tree6ef03fad67ab2dab607bcd91ca0ce8e4a7467f8d
parent229007e02d697b0662f85378aae53531b0dfea05
drm/i915/perf: Schedule oa_config after modifying the contexts

We wish that the scheduler emit the context modification commands prior
to enabling the oa_config, for which we must explicitly inform it of the
ordering constraints. This is especially important as we now wait for
the final oa_config setup to be completed and as this wait may be on a
distinct context to the state modifications, we need that command packet
to be always last in the queue.

We borrow the i915_active for its ability to track multiple timelines
and the last dma_fence on each; a flexible dma_resv. Keeping track of
each dma_fence is important for us so that we can efficiently schedule
the requests and reprioritise as required.

Reported-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200327112212.16046-3-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_perf.c
drivers/gpu/drm/i915/i915_perf_types.h