mirror of https://gitee.com/openkylin/linux.git
drm/i915: Release the mmap offset when purging a buffer
If we discard a buffer due to memory pressure, also release its alloted mmap address space. As it may be sometime before userspace wakes up and notices that it has buffers to purge from its cache, we may waste valuable address space on unusable objects for a period of time. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47738 Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
121d527a32
commit
a14917eeb2
|
@ -1546,6 +1546,9 @@ i915_gem_object_truncate(struct drm_i915_gem_object *obj)
|
|||
inode = obj->base.filp->f_path.dentry->d_inode;
|
||||
shmem_truncate_range(inode, 0, (loff_t)-1);
|
||||
|
||||
if (obj->base.map_list.map)
|
||||
drm_gem_free_mmap_offset(&obj->base);
|
||||
|
||||
obj->madv = __I915_MADV_PURGED;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue