diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch new file mode 100644 index 00000000..6b8a4263 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch @@ -0,0 +1,115 @@ +From 1f2c49ee82ebb7671f67d82bf6328c096de47423 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Thu, 14 Mar 2019 09:10:01 +0100 +Subject: [PATCH 3795/4256] drm/amdgpu: allow direct submission of PDE updates + v2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +For handling PDE updates directly in the fault handler. + +v2: fix typo in comment + +Signed-off-by: Christian König <christian.koenig@amd.com> +Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 8 +++++--- + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 4 ++-- + 5 files changed, 10 insertions(+), 8 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +index 7d540d5f4f9a..8288cd965f8e 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +@@ -375,7 +375,7 @@ static int vm_update_pds(struct amdgpu_vm *vm, struct amdgpu_sync *sync) + struct amdgpu_device *adev = amdgpu_ttm_adev(pd->tbo.bdev); + int ret; + +- ret = amdgpu_vm_update_directories(adev, vm); ++ ret = amdgpu_vm_update_pdes(adev, vm, false); + if (ret) + return ret; + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +index 901ce33cc481..34b793b980a1 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +@@ -838,7 +838,7 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p) + if (r) + return r; + +- r = amdgpu_vm_update_directories(adev, vm); ++ r = amdgpu_vm_update_pdes(adev, vm, false); + if (r) + return r; + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +index 3642abd765b6..cbd09e9b1092 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +@@ -610,7 +610,7 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev, + goto error; + } + +- r = amdgpu_vm_update_directories(adev, vm); ++ r = amdgpu_vm_update_pdes(adev, vm, false); + + error: + if (r && r != -ERESTARTSYS) +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +index 031d5bd3cf27..c787f71ef6a0 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +@@ -1200,18 +1200,19 @@ static void amdgpu_vm_invalidate_pds(struct amdgpu_device *adev, + } + + /* +- * amdgpu_vm_update_directories - make sure that all directories are valid ++ * amdgpu_vm_update_pdes - make sure that all directories are valid + * + * @adev: amdgpu_device pointer + * @vm: requested vm ++ * @direct: submit directly to the paging queue + * + * Makes sure all directories are up to date. + * + * Returns: + * 0 for success, error for failure. + */ +-int amdgpu_vm_update_directories(struct amdgpu_device *adev, +- struct amdgpu_vm *vm) ++int amdgpu_vm_update_pdes(struct amdgpu_device *adev, ++ struct amdgpu_vm *vm, bool direct) + { + struct amdgpu_vm_update_params params; + int r; +@@ -1222,6 +1223,7 @@ int amdgpu_vm_update_directories(struct amdgpu_device *adev, + memset(¶ms, 0, sizeof(params)); + params.adev = adev; + params.vm = vm; ++ params.direct = direct; + + r = vm->update_funcs->prepare(¶ms, AMDGPU_FENCE_OWNER_VM, NULL); + if (r) +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +index 7aa15714d600..3f1335295c00 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +@@ -366,8 +366,8 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm, + int (*callback)(void *p, struct amdgpu_bo *bo), + void *param); + int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, bool need_pipe_sync); +-int amdgpu_vm_update_directories(struct amdgpu_device *adev, +- struct amdgpu_vm *vm); ++int amdgpu_vm_update_pdes(struct amdgpu_device *adev, ++ struct amdgpu_vm *vm, bool direct); + int amdgpu_vm_clear_freed(struct amdgpu_device *adev, + struct amdgpu_vm *vm, + struct dma_fence **fence); +-- +2.17.1 + |