drm/vmwgfx: Assign eviction priorities to resources
authorThomas Hellstrom <thellstrom@vmware.com>
Mon, 4 Mar 2019 18:37:40 +0000 (19:37 +0100)
committerThomas Hellstrom <thellstrom@vmware.com>
Thu, 15 Aug 2019 06:40:05 +0000 (08:40 +0200)
commita0a63940b0c9ebc6d3156bbfe0c2cf7560b580cd
treeaf18fb0b82892b0f63d8f5ebdb7b575a2b52ec79
parent6ae8748bf70630c1598bfdeb7e874624a57fd898
drm/vmwgfx: Assign eviction priorities to resources

TTM provides a means to assign eviction priorities to buffer object. This
means that all buffer objects with a lower priority will be evicted first
on memory pressure.
Use this to make sure surfaces and in particular non-dirty surfaces are
evicted first. Evicting in particular shaders, cotables and contexts imply
a significant performance hit on vmwgfx, so make sure these resources are
evicted last.
Some buffer objects are sub-allocated in user-space which means we can have
many resources attached to a single buffer object or resource. In that case
the buffer object is given the highest priority of the attached resources.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com>
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
drivers/gpu/drm/vmwgfx/vmwgfx_context.c
drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h
drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c