drm/amdgpu: dGPU mode placement support memory partition
dGPU mode uses VRAM manager to validate bo, amdgpu bo placement use the mem_id to get the allocation range first, last page frame number from xcp manager, pass to drm buddy allocator as the allowed range. Signed-off-by: Philip Yang <Philip.Yang@amd.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
2046ed6c8a
commit
7f6db89418
|
@ -132,13 +132,18 @@ void amdgpu_bo_placement_from_domain(struct amdgpu_bo *abo, u32 domain)
|
|||
if (domain & AMDGPU_GEM_DOMAIN_VRAM) {
|
||||
unsigned int visible_pfn = adev->gmc.visible_vram_size >> PAGE_SHIFT;
|
||||
|
||||
places[c].fpfn = 0;
|
||||
places[c].lpfn = 0;
|
||||
if (adev->gmc.mem_partitions && abo->mem_id >= 0) {
|
||||
places[c].fpfn = adev->gmc.mem_partitions[abo->mem_id].range.fpfn;
|
||||
places[c].lpfn = adev->gmc.mem_partitions[abo->mem_id].range.lpfn;
|
||||
} else {
|
||||
places[c].fpfn = 0;
|
||||
places[c].lpfn = 0;
|
||||
}
|
||||
places[c].mem_type = TTM_PL_VRAM;
|
||||
places[c].flags = 0;
|
||||
|
||||
if (flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED)
|
||||
places[c].lpfn = visible_pfn;
|
||||
places[c].lpfn = min_not_zero(places[c].lpfn, visible_pfn);
|
||||
else if (adev->gmc.real_vram_size != adev->gmc.visible_vram_size)
|
||||
places[c].flags |= TTM_PL_FLAG_TOPDOWN;
|
||||
|
||||
|
|
Loading…
Reference in New Issue