drm/i915/gem: Use a single chained reloc batches for a single execbuf
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 1 May 2020 19:29:44 +0000 (20:29 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 1 May 2020 21:56:15 +0000 (22:56 +0100)
commit0e97fbb080553102af98296382c45e89e2ad8dbc
tree39fd2ad3022986e99f6614db862a3ca2f065b681
parent964a9b0f611ee7fedc90641bfcc2efe6ce6206aa
drm/i915/gem: Use a single chained reloc batches for a single execbuf

As we can now keep chaining together a relocation batch to process any
number of relocations, we can keep building that relocation batch for
all of the target vma. This avoiding emitting a new request into the
ring for each target, consuming precious ring space and a potential
stall.

v2: Propagate the failure from submitting the relocation batch.

Testcase: igt/gem_exec_reloc/basic-wide-active
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200501192945.22215-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c