OSDN Git Service

drm/i915/gt: Move the batch buffer pool from the engine to the gt
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 30 Apr 2020 11:18:12 +0000 (12:18 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 30 Apr 2020 18:12:02 +0000 (19:12 +0100)
commit16e87459673a5cbef35cc0f2e15c664b10a4cdb6
treea8b688c6230e6bcd19fbd74f6bc79af925532b27
parent230982d8d8df7f9d9aa216840ea2db1df6ad5d37
drm/i915/gt: Move the batch buffer pool from the engine to the gt

Since the introduction of 'soft-rc6', we aim to park the device quickly
and that results in frequent idling of the whole device. Currently upon
idling we free the batch buffer pool, and so this renders the cache
ineffective for many workloads. If we want to have an effective cache of
recently allocated buffers available for reuse, we need to decouple that
cache from the engine powermanagement and make it timer based. As there
is no reason then to keep it within the engine (where it once made
retirement order easier to track), we can move it up the hierarchy to the
owner of the memory allocations.

v2: Hook up to debugfs/drop_caches to clear the cache on demand.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200430111819.10262-2-chris@chris-wilson.co.uk
16 files changed:
drivers/gpu/drm/i915/Makefile
drivers/gpu/drm/i915/gem/i915_gem_client_blt.c
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
drivers/gpu/drm/i915/gem/i915_gem_object_blt.c
drivers/gpu/drm/i915/gem/i915_gem_object_blt.h
drivers/gpu/drm/i915/gt/intel_engine_cs.c
drivers/gpu/drm/i915/gt/intel_engine_pm.c
drivers/gpu/drm/i915/gt/intel_engine_pool.h [deleted file]
drivers/gpu/drm/i915/gt/intel_engine_types.h
drivers/gpu/drm/i915/gt/intel_gt.c
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c [moved from drivers/gpu/drm/i915/gt/intel_engine_pool.c with 53% similarity]
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.h [new file with mode: 0644]
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool_types.h [moved from drivers/gpu/drm/i915/gt/intel_engine_pool_types.h with 54% similarity]
drivers/gpu/drm/i915/gt/intel_gt_types.h
drivers/gpu/drm/i915/gt/mock_engine.c
drivers/gpu/drm/i915/i915_debugfs.c