Skip to content

Commit 391629b

Browse files
Nirmoy Dasalexdeucher
authored andcommitted
drm/amdgpu: remove amdgpu_vm_pt
Page table entries are now in embedded in VM BO, so we do not need struct amdgpu_vm_pt. This patch replaces struct amdgpu_vm_pt with struct amdgpu_vm_bo_base. Signed-off-by: Nirmoy Das <nirmoy.das@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent ed4454c commit 391629b

12 files changed

Lines changed: 105 additions & 126 deletions

File tree

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ static int amdgpu_amdkfd_validate_vm_bo(void *_unused, struct amdgpu_bo *bo)
356356
*/
357357
static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
358358
{
359-
struct amdgpu_bo *pd = vm->root.base.bo;
359+
struct amdgpu_bo *pd = vm->root.bo;
360360
struct amdgpu_device *adev = amdgpu_ttm_adev(pd->tbo.bdev);
361361
int ret;
362362

@@ -372,7 +372,7 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
372372
return ret;
373373
}
374374

375-
vm->pd_phys_addr = amdgpu_gmc_pd_addr(vm->root.base.bo);
375+
vm->pd_phys_addr = amdgpu_gmc_pd_addr(vm->root.bo);
376376

377377
if (vm->use_cpu_for_update) {
378378
ret = amdgpu_bo_kmap(pd, NULL);
@@ -387,7 +387,7 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
387387

388388
static int vm_update_pds(struct amdgpu_vm *vm, struct amdgpu_sync *sync)
389389
{
390-
struct amdgpu_bo *pd = vm->root.base.bo;
390+
struct amdgpu_bo *pd = vm->root.bo;
391391
struct amdgpu_device *adev = amdgpu_ttm_adev(pd->tbo.bdev);
392392
int ret;
393393

@@ -1153,7 +1153,7 @@ static int process_sync_pds_resv(struct amdkfd_process_info *process_info,
11531153

11541154
list_for_each_entry(peer_vm, &process_info->vm_list_head,
11551155
vm_list_node) {
1156-
struct amdgpu_bo *pd = peer_vm->root.base.bo;
1156+
struct amdgpu_bo *pd = peer_vm->root.bo;
11571157

11581158
ret = amdgpu_sync_resv(NULL, sync, pd->tbo.base.resv,
11591159
AMDGPU_SYNC_NE_OWNER,
@@ -1220,24 +1220,24 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
12201220
vm->process_info = *process_info;
12211221

12221222
/* Validate page directory and attach eviction fence */
1223-
ret = amdgpu_bo_reserve(vm->root.base.bo, true);
1223+
ret = amdgpu_bo_reserve(vm->root.bo, true);
12241224
if (ret)
12251225
goto reserve_pd_fail;
12261226
ret = vm_validate_pt_pd_bos(vm);
12271227
if (ret) {
12281228
pr_err("validate_pt_pd_bos() failed\n");
12291229
goto validate_pd_fail;
12301230
}
1231-
ret = amdgpu_bo_sync_wait(vm->root.base.bo,
1231+
ret = amdgpu_bo_sync_wait(vm->root.bo,
12321232
AMDGPU_FENCE_OWNER_KFD, false);
12331233
if (ret)
12341234
goto wait_pd_fail;
1235-
ret = dma_resv_reserve_shared(vm->root.base.bo->tbo.base.resv, 1);
1235+
ret = dma_resv_reserve_shared(vm->root.bo->tbo.base.resv, 1);
12361236
if (ret)
12371237
goto reserve_shared_fail;
1238-
amdgpu_bo_fence(vm->root.base.bo,
1238+
amdgpu_bo_fence(vm->root.bo,
12391239
&vm->process_info->eviction_fence->base, true);
1240-
amdgpu_bo_unreserve(vm->root.base.bo);
1240+
amdgpu_bo_unreserve(vm->root.bo);
12411241

12421242
/* Update process info */
12431243
mutex_lock(&vm->process_info->lock);
@@ -1251,7 +1251,7 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
12511251
reserve_shared_fail:
12521252
wait_pd_fail:
12531253
validate_pd_fail:
1254-
amdgpu_bo_unreserve(vm->root.base.bo);
1254+
amdgpu_bo_unreserve(vm->root.bo);
12551255
reserve_pd_fail:
12561256
vm->process_info = NULL;
12571257
if (info) {
@@ -1306,7 +1306,7 @@ void amdgpu_amdkfd_gpuvm_destroy_cb(struct amdgpu_device *adev,
13061306
struct amdgpu_vm *vm)
13071307
{
13081308
struct amdkfd_process_info *process_info = vm->process_info;
1309-
struct amdgpu_bo *pd = vm->root.base.bo;
1309+
struct amdgpu_bo *pd = vm->root.bo;
13101310

13111311
if (!process_info)
13121312
return;
@@ -1362,7 +1362,7 @@ void amdgpu_amdkfd_gpuvm_release_process_vm(struct kgd_dev *kgd, void *drm_priv)
13621362
uint64_t amdgpu_amdkfd_gpuvm_get_process_page_dir(void *drm_priv)
13631363
{
13641364
struct amdgpu_vm *avm = drm_priv_to_vm(drm_priv);
1365-
struct amdgpu_bo *pd = avm->root.base.bo;
1365+
struct amdgpu_bo *pd = avm->root.bo;
13661366
struct amdgpu_device *adev = amdgpu_ttm_adev(pd->tbo.bdev);
13671367

13681368
if (adev->asic_type < CHIP_VEGA10)
@@ -2389,7 +2389,7 @@ int amdgpu_amdkfd_gpuvm_restore_process_bos(void *info, struct dma_fence **ef)
23892389
/* Attach eviction fence to PD / PT BOs */
23902390
list_for_each_entry(peer_vm, &process_info->vm_list_head,
23912391
vm_list_node) {
2392-
struct amdgpu_bo *bo = peer_vm->root.base.bo;
2392+
struct amdgpu_bo *bo = peer_vm->root.bo;
23932393

23942394
amdgpu_bo_fence(bo, &process_info->eviction_fence->base, true);
23952395
}

drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -832,7 +832,7 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p)
832832
if (r)
833833
return r;
834834

835-
p->job->vm_pd_addr = amdgpu_gmc_pd_addr(vm->root.base.bo);
835+
p->job->vm_pd_addr = amdgpu_gmc_pd_addr(vm->root.bo);
836836

837837
if (amdgpu_vm_debug) {
838838
/* Invalidate all BOs to test for userspace bugs */

drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1304,11 +1304,11 @@ static int amdgpu_debugfs_vm_info_show(struct seq_file *m, void *unused)
13041304

13051305
seq_printf(m, "pid:%d\tProcess:%s ----------\n",
13061306
vm->task_info.pid, vm->task_info.process_name);
1307-
r = amdgpu_bo_reserve(vm->root.base.bo, true);
1307+
r = amdgpu_bo_reserve(vm->root.bo, true);
13081308
if (r)
13091309
break;
13101310
amdgpu_debugfs_vm_bo_info(vm, m);
1311-
amdgpu_bo_unreserve(vm->root.base.bo);
1311+
amdgpu_bo_unreserve(vm->root.bo);
13121312
}
13131313

13141314
mutex_unlock(&dev->filelist_mutex);

drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ amdgpu_dma_buf_move_notify(struct dma_buf_attachment *attach)
448448

449449
for (bo_base = bo->vm_bo; bo_base; bo_base = bo_base->next) {
450450
struct amdgpu_vm *vm = bo_base->vm;
451-
struct dma_resv *resv = vm->root.base.bo->tbo.base.resv;
451+
struct dma_resv *resv = vm->root.bo->tbo.base.resv;
452452

453453
if (ticket) {
454454
/* When we get an error here it means that somebody

drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,13 @@ void amdgpu_show_fdinfo(struct seq_file *m, struct file *f)
6969
dev = PCI_SLOT(adev->pdev->devfn);
7070
fn = PCI_FUNC(adev->pdev->devfn);
7171

72-
ret = amdgpu_bo_reserve(fpriv->vm.root.base.bo, false);
72+
ret = amdgpu_bo_reserve(fpriv->vm.root.bo, false);
7373
if (ret) {
7474
DRM_ERROR("Fail to reserve bo\n");
7575
return;
7676
}
7777
amdgpu_vm_get_memory(&fpriv->vm, &vram_mem, &gtt_mem, &cpu_mem);
78-
amdgpu_bo_unreserve(fpriv->vm.root.base.bo);
78+
amdgpu_bo_unreserve(fpriv->vm.root.bo);
7979
seq_printf(m, "pdev:\t%04x:%02x:%02x.%d\npasid:\t%u\n", domain, bus,
8080
dev, fn, fpriv->vm.pasid);
8181
seq_printf(m, "vram mem:\t%llu kB\n", vram_mem/1024UL);

drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ static int amdgpu_gem_object_open(struct drm_gem_object *obj,
170170
return -EPERM;
171171

172172
if (abo->flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID &&
173-
abo->tbo.base.resv != vm->root.base.bo->tbo.base.resv)
173+
abo->tbo.base.resv != vm->root.bo->tbo.base.resv)
174174
return -EPERM;
175175

176176
r = amdgpu_bo_reserve(abo, false);
@@ -320,11 +320,11 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
320320
}
321321

322322
if (flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) {
323-
r = amdgpu_bo_reserve(vm->root.base.bo, false);
323+
r = amdgpu_bo_reserve(vm->root.bo, false);
324324
if (r)
325325
return r;
326326

327-
resv = vm->root.base.bo->tbo.base.resv;
327+
resv = vm->root.bo->tbo.base.resv;
328328
}
329329

330330
initial_domain = (u32)(0xffffffff & args->in.domains);
@@ -353,9 +353,9 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
353353
if (!r) {
354354
struct amdgpu_bo *abo = gem_to_amdgpu_bo(gobj);
355355

356-
abo->parent = amdgpu_bo_ref(vm->root.base.bo);
356+
abo->parent = amdgpu_bo_ref(vm->root.bo);
357357
}
358-
amdgpu_bo_unreserve(vm->root.base.bo);
358+
amdgpu_bo_unreserve(vm->root.bo);
359359
}
360360
if (r)
361361
return r;
@@ -841,7 +841,7 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
841841
}
842842
for (base = robj->vm_bo; base; base = base->next)
843843
if (amdgpu_xgmi_same_hive(amdgpu_ttm_adev(robj->tbo.bdev),
844-
amdgpu_ttm_adev(base->vm->root.base.bo->tbo.bdev))) {
844+
amdgpu_ttm_adev(base->vm->root.bo->tbo.bdev))) {
845845
r = -EINVAL;
846846
amdgpu_bo_unreserve(robj);
847847
goto out;

drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1262,7 +1262,7 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
12621262
}
12631263

12641264
pasid = fpriv->vm.pasid;
1265-
pd = amdgpu_bo_ref(fpriv->vm.root.base.bo);
1265+
pd = amdgpu_bo_ref(fpriv->vm.root.bo);
12661266

12671267
amdgpu_ctx_mgr_fini(&fpriv->ctx_mgr);
12681268
amdgpu_vm_fini(adev, &fpriv->vm);

drivers/gpu/drm/amd/amdgpu/amdgpu_object.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ struct amdgpu_bo_user {
126126
struct amdgpu_bo_vm {
127127
struct amdgpu_bo bo;
128128
struct amdgpu_bo *shadow;
129-
struct amdgpu_vm_pt entries[];
129+
struct amdgpu_vm_bo_base entries[];
130130
};
131131

132132
static inline struct amdgpu_bo *ttm_to_amdgpu_bo(struct ttm_buffer_object *tbo)

0 commit comments

Comments
 (0)