mbox series

[0/7] drm/i915/execbuf: Add support for parallel execbuf submission.

Message ID 20191210103204.3564263-1-maarten.lankhorst@linux.intel.com (mailing list archive)
Headers show
Series drm/i915/execbuf: Add support for parallel execbuf submission. | expand

Message

Maarten Lankhorst Dec. 10, 2019, 10:31 a.m. UTC
Rework excecbuf slightly to take all locks earlier and stop dropping our lookups,
which allows us to do a more effective try-loop.

We will also need to lock all gem bo's in advance, including the shadow bo for the
command buffer submission. This is done before replacing struct_mutex by ww locking,
for increased readability.

Chris Wilson (2):
  drm/i915: Drop inspection of execbuf flags during evict
  drm/i915/gem: Extract transient execbuf flags from i915_vma

Maarten Lankhorst (5):
  drm/i915: Add an implementation for i915_gem_ww_ctx locking, v2.
  drm/i915: Remove locking from i915_gem_object_prepare_read/write
  drm/i915: Separate lookup and pinning in execbuf.
  drm/i915: Parse command buffer earlier in eb_relocate(slow)
  drm/i915: Use per object locking instead of struct_mutex for execbuf

 drivers/gpu/drm/i915/display/intel_display.c  |   4 +-
 .../gpu/drm/i915/gem/i915_gem_client_blt.c    |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c   |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c    |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_domain.c    |  26 +-
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c    | 547 +++++++++---------
 drivers/gpu/drm/i915/gem/i915_gem_object.c    |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h    |  39 +-
 .../gpu/drm/i915/gem/i915_gem_object_blt.c    |   2 +-
 .../gpu/drm/i915/gem/i915_gem_object_types.h  |   9 +
 drivers/gpu/drm/i915/gem/i915_gem_pm.c        |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c    |   2 +-
 .../gpu/drm/i915/gem/selftests/huge_pages.c   |   9 +-
 .../i915/gem/selftests/i915_gem_client_blt.c  |   2 +-
 .../i915/gem/selftests/i915_gem_coherency.c   |  24 +-
 .../drm/i915/gem/selftests/i915_gem_context.c |  16 +-
 .../drm/i915/gem/selftests/i915_gem_mman.c    |   4 +-
 .../i915/gem/selftests/i915_gem_object_blt.c  |   4 +-
 .../drm/i915/gem/selftests/i915_gem_phys.c    |   2 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.c   |   9 +-
 .../gpu/drm/i915/gt/selftest_workarounds.c    |   2 +-
 drivers/gpu/drm/i915/gvt/cmd_parser.c         |  11 +-
 drivers/gpu/drm/i915/i915_cmd_parser.c        |   1 +
 drivers/gpu/drm/i915/i915_drv.h               |   6 -
 drivers/gpu/drm/i915/i915_gem.c               |  62 +-
 drivers/gpu/drm/i915/i915_gem.h               |  11 +
 drivers/gpu/drm/i915/i915_gem_evict.c         |  15 +-
 drivers/gpu/drm/i915/i915_vma.h               |  11 -
 drivers/gpu/drm/i915/selftests/i915_gem.c     |  41 ++
 drivers/gpu/drm/i915/selftests/i915_vma.c     |   2 +-
 .../drm/i915/selftests/intel_memory_region.c  |   4 +-
 31 files changed, 505 insertions(+), 372 deletions(-)