drm/i915/guc: don't spinwait if the GuC's workqueue is full
authorDave Gordon <david.s.gordon@intel.com>
Fri, 13 May 2016 14:36:33 +0000 (15:36 +0100)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Mon, 23 May 2016 13:21:53 +0000 (14:21 +0100)
commit551aaecd8873b728a85c1fcb2b8ca502e9ffc49c
tree2f9890e8f01bd619da27eecb7a7be23b658f823c
parent7c2c270d27dd4e52529deee9814493c27f956218
drm/i915/guc: don't spinwait if the GuC's workqueue is full

Rather than wait to see whether more space becomes available in the GuC
submission workqueue, we can just return -EAGAIN and let the caller try
again in a little while. This gets rid of an uninterruptable sleep in
the polling code :)

We'll also add a counter to the GuC client statistics, to see how often
we find the WQ full.

v2:
    Flag the likely() code path (Tvtrko Ursulin).

v4:
    Add/update comments about failure counters (Tvtrko Ursulin).

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/i915_guc_submission.c
drivers/gpu/drm/i915/intel_guc.h