drm/amdgpu: fix buffer placement under memory pressure
authorChristian König <christian.koenig@amd.com>
Wed, 2 Sep 2015 18:25:48 +0000 (20:25 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 3 Sep 2015 18:30:49 +0000 (14:30 -0400)
Some buffers (UVD/VM page tables) must be placed in VRAM,
but the byte restriction for moving buffers didn't took this
into account.

Port of radeon commit 4b09556660bfe1b43d72ca858524c6baf2c6cb1d.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

index 6a206f15635fdf93bef32511faffc23627f20f35..3b355aeb62fd353320fd47260bb05263e0e998ab 100644 (file)
@@ -354,7 +354,7 @@ int amdgpu_cs_list_validate(struct amdgpu_cs_parser *p)
                         * into account. We don't want to disallow buffer moves
                         * completely.
                         */
-                       if (current_domain != AMDGPU_GEM_DOMAIN_CPU &&
+                       if ((lobj->allowed_domains & current_domain) != 0 &&
                            (domain & current_domain) == 0 && /* will be moved */
                            bytes_moved > bytes_moved_threshold) {
                                /* don't move it */