Commit af152c21 authored by Shane Xiao's avatar Shane Xiao Committed by Alex Deucher

amd/amdgpu: Inherit coherence flags base on original BO flags

For SG BO to DMA-map userptrs on other GPUs, the SG BO
need inherit MTYPEs in PTEs from original BO.

If we set the flags, the device can be coherent with
the CPUs and other GPUs.

v2:
  1. Drop unnecessary flags check
  2. Remove local variable align
Signed-off-by: default avatarShane Xiao <shane.xiao@amd.com>
Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 89317d42
...@@ -272,15 +272,19 @@ create_dmamap_sg_bo(struct amdgpu_device *adev, ...@@ -272,15 +272,19 @@ create_dmamap_sg_bo(struct amdgpu_device *adev,
struct kgd_mem *mem, struct amdgpu_bo **bo_out) struct kgd_mem *mem, struct amdgpu_bo **bo_out)
{ {
struct drm_gem_object *gem_obj; struct drm_gem_object *gem_obj;
int ret, align; int ret;
uint64_t flags = 0;
ret = amdgpu_bo_reserve(mem->bo, false); ret = amdgpu_bo_reserve(mem->bo, false);
if (ret) if (ret)
return ret; return ret;
align = 1; if (mem->alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_USERPTR)
ret = amdgpu_gem_object_create(adev, mem->bo->tbo.base.size, align, flags |= mem->bo->flags & (AMDGPU_GEM_CREATE_COHERENT |
AMDGPU_GEM_DOMAIN_CPU, AMDGPU_GEM_CREATE_PREEMPTIBLE, AMDGPU_GEM_CREATE_UNCACHED);
ret = amdgpu_gem_object_create(adev, mem->bo->tbo.base.size, 1,
AMDGPU_GEM_DOMAIN_CPU, AMDGPU_GEM_CREATE_PREEMPTIBLE | flags,
ttm_bo_type_sg, mem->bo->tbo.base.resv, &gem_obj); ttm_bo_type_sg, mem->bo->tbo.base.resv, &gem_obj);
amdgpu_bo_unreserve(mem->bo); amdgpu_bo_unreserve(mem->bo);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment