linux/drivers/gpu/drm/i915/gem
Jason Ekstrand c9d9fdbc10 drm/i915: Revert "drm/i915/gem: Asynchronous cmdparser"
This reverts 686c7c35ab ("drm/i915/gem: Asynchronous cmdparser").  The
justification for this commit in the git history was a vague comment
about getting it out from under the struct_mutex.  While this may
improve perf for some workloads on Gen7 platforms where we rely on the
command parser for features such as indirect rendering, no numbers were
provided to prove such an improvement.  It claims to closed two
gitlab/bugzilla issues but with no explanation whatsoever as to why or
what bug it's fixing.

Meanwhile, by moving command parsing off to an async callback, it leaves
us with a problem of what to do on error.  When things were synchronous,
EXECBUFFER2 would fail with an error code if parsing failed.  When
moving it to async, we needed another way to handle that error and the
solution employed was to set an error on the dma_fence and then trust
that said error gets propagated to the client eventually.  Moving back
to synchronous will help us untangle the fence error propagation mess.

This also reverts most of 0edbb9ba1b ("drm/i915: Move cmd parser
pinning to execbuffer") which is a refactor of some of our allocation
paths for asynchronous parsing.  Now that everything is synchronous, we
don't need it.

v2 (Daniel Vetter):
 - Add stabel Cc and Fixes tag

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: <stable@vger.kernel.org> # v5.6+
Fixes: 9e31c1fe45 ("drm/i915: Propagate errors on awaiting already signaled fences")
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Jon Bloomfield <jon.bloomfield@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20210714193419.1459723-2-jason@jlekstrand.net
(cherry picked from commit 93b7133041)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-07-19 09:55:20 -04:00
..
selftests drm/i915: Revert "drm/i915/gem: Asynchronous cmdparser" 2021-07-19 09:55:20 -04:00
i915_gem_busy.c dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
i915_gem_clflush.c drm/i915: Rework clflush to work correctly without obj->mm.lock. 2021-03-24 17:27:20 +01:00
i915_gem_clflush.h
i915_gem_client_blt.c drm/i915/gem: Perform all asynchronous waits prior to marking payload start 2020-11-03 15:00:06 +00:00
i915_gem_client_blt.h
i915_gem_context_types.h drm/i915: Fail too long user submissions by default 2021-03-26 01:01:27 +01:00
i915_gem_context.c drm/i915/gem: replace IS_GEN and friends with GRAPHICS_VER 2021-06-05 15:09:43 -07:00
i915_gem_context.h drm/i915/gem: Drop free_work for GEM contexts 2020-12-16 15:14:09 +00:00
i915_gem_create.c drm/i915/gem: hide new uAPI behind CONFIG_BROKEN 2021-05-04 10:58:56 +01:00
i915_gem_dmabuf.c drm/i915: Fix i915_sg_page_sizes to record dma segments rather than physical pages 2021-06-01 09:33:08 +01:00
i915_gem_domain.c drm/i915: Take obj lock around set_domain ioctl 2021-03-24 17:27:20 +01:00
i915_gem_execbuffer.c drm/i915: Revert "drm/i915/gem: Asynchronous cmdparser" 2021-07-19 09:55:20 -04:00
i915_gem_internal.c Merge branch 'stable/for-linus-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb 2021-05-04 10:58:49 -07:00
i915_gem_ioctls.h drm/i915/uapi: introduce drm_i915_gem_create_ext 2021-05-04 10:58:56 +01:00
i915_gem_lmem.c drm/i915/ttm Initialize the ttm device and memory managers 2021-06-02 13:21:24 +01:00
i915_gem_lmem.h drm/i915/lmem: Bypass aperture when lmem is available 2021-04-27 16:21:47 +01:00
i915_gem_mman.c drm/i915: Reinstate the mmap ioctl for some platforms 2021-06-28 07:43:56 -04:00
i915_gem_mman.h
i915_gem_object_blt.c drm/i915/gem: replace IS_GEN and friends with GRAPHICS_VER 2021-06-05 15:09:43 -07:00
i915_gem_object_blt.h drm/i915: Convert i915_gem_object/client_blt.c to use ww locking as well, v2. 2020-09-07 14:31:22 +03:00
i915_gem_object_types.h drm/i915/ttm: Embed a ttm buffer object in the i915 gem object 2021-06-02 13:22:04 +01:00
i915_gem_object.c drm/i915/ttm: Embed a ttm buffer object in the i915 gem object 2021-06-02 13:22:04 +01:00
i915_gem_object.h dma-buf: rename dma_resv_get_excl_rcu to _unlocked 2021-06-06 11:19:30 +02:00
i915_gem_pages.c drm/i915/ttm Initialize the ttm device and memory managers 2021-06-02 13:21:24 +01:00
i915_gem_phys.c Merge drm/drm-next into drm-intel-gt-next 2021-06-02 10:18:45 +03:00
i915_gem_pm.c drm/i915: Finally remove obj->mm.lock. 2021-03-24 17:47:20 +01:00
i915_gem_pm.h drm/i915/gem: Move freeze/freeze_late next to suspend/suspend_late 2021-02-08 16:56:49 -05:00
i915_gem_region.c drm/i915/ttm Initialize the ttm device and memory managers 2021-06-02 13:21:24 +01:00
i915_gem_region.h drm/i915/ttm Initialize the ttm device and memory managers 2021-06-02 13:21:24 +01:00
i915_gem_shmem.c drm/i915/ttm Initialize the ttm device and memory managers 2021-06-02 13:21:24 +01:00
i915_gem_shrinker.c drm/i915: Fix fall-through warning for Clang 2021-07-12 00:51:03 -05:00
i915_gem_shrinker.h drm/i915: Finally remove obj->mm.lock. 2021-03-24 17:47:20 +01:00
i915_gem_stolen.c drm/i915/gem: replace IS_GEN and friends with GRAPHICS_VER 2021-06-05 15:09:43 -07:00
i915_gem_stolen.h drm/i915/ttm Initialize the ttm device and memory managers 2021-06-02 13:21:24 +01:00
i915_gem_throttle.c
i915_gem_tiling.c drm/i915/gem: replace IS_GEN and friends with GRAPHICS_VER 2021-06-05 15:09:43 -07:00
i915_gem_userptr.c Merge tag 'drm-intel-gt-next-2021-06-10' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-06-11 13:37:34 +10:00
i915_gem_wait.c dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
i915_gemfs.c
i915_gemfs.h