summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/qxl/qxl_object.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2021-02-17 13:32:05 +0100
committerGerd Hoffmann <kraxel@redhat.com>2021-02-19 09:13:25 +0100
commit4fff19ae427548d8c37260c975a4b20d3c040ec6 (patch)
treed8310f78fa00544dce899aa4530d5285b5a1f26d /drivers/gpu/drm/qxl/qxl_object.c
parent42c4551aca94c987ea70b31f496d602de8dad283 (diff)
downloadlwn-4fff19ae427548d8c37260c975a4b20d3c040ec6.tar.gz
lwn-4fff19ae427548d8c37260c975a4b20d3c040ec6.zip
drm/qxl: use ttm bo priorities
Allow to set priorities for buffer objects. Use priority 1 for surface and cursor command releases. Use priority 0 for drawing command releases. That way the short-living drawing commands are first in line when it comes to eviction, making it *much* less likely that ttm_bo_mem_force_space() picks something which can't be evicted and throws an error after waiting a while without success. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Link: http://patchwork.freedesktop.org/patch/msgid/20210217123213.2199186-4-kraxel@redhat.com
Diffstat (limited to 'drivers/gpu/drm/qxl/qxl_object.c')
-rw-r--r--drivers/gpu/drm/qxl/qxl_object.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_object.c b/drivers/gpu/drm/qxl/qxl_object.c
index 705b51535492..7eada4ad217b 100644
--- a/drivers/gpu/drm/qxl/qxl_object.c
+++ b/drivers/gpu/drm/qxl/qxl_object.c
@@ -103,8 +103,8 @@ static const struct drm_gem_object_funcs qxl_object_funcs = {
.print_info = drm_gem_ttm_print_info,
};
-int qxl_bo_create(struct qxl_device *qdev,
- unsigned long size, bool kernel, bool pinned, u32 domain,
+int qxl_bo_create(struct qxl_device *qdev, unsigned long size,
+ bool kernel, bool pinned, u32 domain, u32 priority,
struct qxl_surface *surf,
struct qxl_bo **bo_ptr)
{
@@ -137,6 +137,7 @@ int qxl_bo_create(struct qxl_device *qdev,
qxl_ttm_placement_from_domain(bo, domain);
+ bo->tbo.priority = priority;
r = ttm_bo_init_reserved(&qdev->mman.bdev, &bo->tbo, size, type,
&bo->placement, 0, &ctx, NULL, NULL,
&qxl_ttm_bo_destroy);