diff options
author | Matthew Auld <matthew.auld@intel.com> | 2019-10-08 17:01:16 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2019-10-08 20:50:01 +0100 |
commit | 7c98501acb94318819f5ea764fc3aae09f69aff6 (patch) | |
tree | 141e7324dafb25bdc9d05807535650df39b811f6 /drivers/gpu/drm/i915/intel_memory_region.c | |
parent | 2f0b97ca02118630132dddf258fbdb5d5f5ec32a (diff) | |
download | linux-7c98501acb94318819f5ea764fc3aae09f69aff6.tar.bz2 |
drm/i915/region: support volatile objects
Volatile objects are marked as DONTNEED while pinned, therefore once
unpinned the backing store can be discarded. This is limited to kernel
internal objects.
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: CQ Tang <cq.tang@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20191008160116.18379-4-matthew.auld@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_memory_region.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_memory_region.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c index 98006618e871..c0299435d75e 100644 --- a/drivers/gpu/drm/i915/intel_memory_region.c +++ b/drivers/gpu/drm/i915/intel_memory_region.c @@ -152,6 +152,10 @@ intel_memory_region_create(struct drm_i915_private *i915, mem->min_page_size = min_page_size; mem->ops = ops; + mutex_init(&mem->objects.lock); + INIT_LIST_HEAD(&mem->objects.list); + INIT_LIST_HEAD(&mem->objects.purgeable); + mutex_init(&mem->mm_lock); if (ops->init) { @@ -177,6 +181,7 @@ static void __intel_memory_region_destroy(struct kref *kref) mem->ops->release(mem); mutex_destroy(&mem->mm_lock); + mutex_destroy(&mem->objects.lock); kfree(mem); } |