[Intel-gfx] [CI-Resend v2 0/6] drm/i915/guc: use one GuC client per GPU engine
Dave Gordon
david.s.gordon at intel.com
Fri Jul 22 15:15:30 UTC 2016
When using a single GuC client for multiple engines, the i915 driver has
to merge all work items into a single work queue, which the GuC firmware
then demultiplexes into separate submission queues per engine. In
theory, this could lead to the single queue becoming a bottleneck in
which an excess of outstanding work for one or more engines might
prevent work for an idle engine reaching the hardware.
To reduce this risk, we can create one GuC client per engine. Each will
have its own workqueue, to be used only for work targeting a single
engine, so there will be no cross-engine contention for workqueue slots.
Dave Gordon (6):
drm/i915/guc: doorbell reset should avoid used doorbells
drm/i915/guc: refactor guc_init_doorbell_hw()
drm/i915/guc: use a separate GuC client for each engine
drm/i915/guc: add engine mask to GuC client & pass to GuC
drm/i915/guc: use for_each_engine_id() where appropriate
drm/i915/guc: re-optimise i915_guc_client layout
drivers/gpu/drm/i915/i915_debugfs.c | 43 +++++++----
drivers/gpu/drm/i915/i915_guc_submission.c | 118 ++++++++++++++++++-----------
drivers/gpu/drm/i915/intel_guc.h | 11 ++-
3 files changed, 107 insertions(+), 65 deletions(-)
--
1.9.1
--
More information about the Intel-gfx
mailing list