Am 2021-08-24 um 11:48 p.m. schrieb Alex Sierra:
Ref counter from device pages is init to zero during memmap init zone. The first time a new device page is allocated to migrate data into it, its ref counter needs to be initialized to one.
Signed-off-by: Alex Sierra alex.sierra@amd.com
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c index dab290a4d19d..47ee9a895cd2 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c @@ -220,7 +220,7 @@ svm_migrate_get_vram_page(struct svm_range *prange, unsigned long pfn) page = pfn_to_page(pfn); svm_range_bo_ref(prange->svm_bo); page->zone_device_data = prange->svm_bo;
- get_page(page);
There is an assumption here that the page refcount is 0 because the page should be unused. I'd add a VM_BUG_ON_PAGE(page_ref_count(page), page) here to check that assumption.
Regards, Felix
- init_page_count(page); lock_page(page);
}