drm/amdgpu: use allowed_domains for exported DMA-bufs
authorChristian König <christian.koenig@amd.com>
Mon, 6 May 2019 14:35:26 +0000 (16:35 +0200)
committerChristian König <christian.koenig@amd.com>
Thu, 27 Feb 2020 13:58:01 +0000 (14:58 +0100)
Avoid that we ping/pong the buffers when we stop to pin DMA-buf
exports by using the allowed domains for exported buffers.

Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/353996/?series=73646&rev=1
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

index a52a084..41bd2da 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/file.h>
 #include <linux/pagemap.h>
 #include <linux/sync_file.h>
+#include <linux/dma-buf.h>
 
 #include <drm/amdgpu_drm.h>
 #include <drm/drm_syncobj.h>
@@ -415,7 +416,9 @@ static int amdgpu_cs_bo_validate(struct amdgpu_cs_parser *p,
        /* Don't move this buffer if we have depleted our allowance
         * to move it. Don't move anything if the threshold is zero.
         */
-       if (p->bytes_moved < p->bytes_moved_threshold) {
+       if (p->bytes_moved < p->bytes_moved_threshold &&
+           (!bo->tbo.base.dma_buf ||
+           list_empty(&bo->tbo.base.dma_buf->attachments))) {
                if (!amdgpu_gmc_vram_full_visible(&adev->gmc) &&
                    (bo->flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED)) {
                        /* And don't move a CPU_ACCESS_REQUIRED BO to limited