From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> Retired request queue coupled with retired work handler is a scalability concern on some workloads of which one dramatic example is gem_close_race. This series depend on i915_gem_object_pin_map series by Chris Wilson. Brief outline of patches: 1/4) Allow lockless request unreference - needed for 4/4. 2/4) Pin the LRC until the following request is completed - needed for GuC mode on its own and also enables 4/4. 3/4) Use i915_gem_object_pin_map in execlists to alleviate increase in LRC pin/unpin this series adds. 4/4) Removes retired_req_queue. Lightly tested so RFC for now. Did not spot any performance difference in my usual benchmarks but did not look very closely yet. There may be wins in CPU usage. TBD. Easiest way to see the change is gem_close_race which finishes in 10-20 seconds with this series and otherwise takes ten minutes to half an hour. TODO: 1) Patches 2 and 3 should probably swap order. 2) More benchmarking including CPU usage and power. 3) Need a better cover letter as well. Chris Wilson (1): drm/i915: Move releasing of the GEM request from free to retire/cancel Tvrtko Ursulin (3): drm/i915/guc: Keep the previous context pinned until the next one has been completed drm/i915: Use new i915_gem_object_pin_map for LRC drm/i915: Stop tracking execlists retired requests drivers/gpu/drm/i915/i915_drv.h | 18 ++------ drivers/gpu/drm/i915/i915_gem.c | 63 +++++++++++++------------- drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 78 ++++++++++++++++----------------- drivers/gpu/drm/i915/intel_lrc.h | 2 +- drivers/gpu/drm/i915/intel_pm.c | 2 +- drivers/gpu/drm/i915/intel_ringbuffer.h | 1 - 7 files changed, 74 insertions(+), 92 deletions(-) -- 1.9.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx