Lines Matching refs:bo_va
1233 int amdgpu_vm_bo_update(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_update() argument
1236 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_update()
1237 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_update()
1273 if (obj->import_attach && bo_va->is_xgmi) { in amdgpu_vm_bo_update()
1314 last_update = &bo_va->last_pt_update; in amdgpu_vm_bo_update()
1316 if (!clear && bo_va->base.moved) { in amdgpu_vm_bo_update()
1318 list_splice_init(&bo_va->valids, &bo_va->invalids); in amdgpu_vm_bo_update()
1320 } else if (bo_va->cleared != clear) { in amdgpu_vm_bo_update()
1321 list_splice_init(&bo_va->valids, &bo_va->invalids); in amdgpu_vm_bo_update()
1324 list_for_each_entry(mapping, &bo_va->invalids, list) { in amdgpu_vm_bo_update()
1357 amdgpu_vm_bo_evicted(&bo_va->base); in amdgpu_vm_bo_update()
1359 amdgpu_vm_bo_idle(&bo_va->base); in amdgpu_vm_bo_update()
1361 amdgpu_vm_bo_done(&bo_va->base); in amdgpu_vm_bo_update()
1364 list_splice_init(&bo_va->invalids, &bo_va->valids); in amdgpu_vm_bo_update()
1365 bo_va->cleared = clear; in amdgpu_vm_bo_update()
1366 bo_va->base.moved = false; in amdgpu_vm_bo_update()
1369 list_for_each_entry(mapping, &bo_va->valids, list) in amdgpu_vm_bo_update()
1584 struct amdgpu_bo_va *bo_va; in amdgpu_vm_handle_moved() local
1591 bo_va = list_first_entry(&vm->moved, struct amdgpu_bo_va, in amdgpu_vm_handle_moved()
1596 r = amdgpu_vm_bo_update(adev, bo_va, false); in amdgpu_vm_handle_moved()
1603 bo_va = list_first_entry(&vm->invalidated, struct amdgpu_bo_va, in amdgpu_vm_handle_moved()
1605 resv = bo_va->base.bo->tbo.base.resv; in amdgpu_vm_handle_moved()
1622 r = amdgpu_vm_bo_update(adev, bo_va, clear); in amdgpu_vm_handle_moved()
1633 bo_va->base.bo->tbo.base.import_attach && in amdgpu_vm_handle_moved()
1634 (!bo_va->base.bo->tbo.resource || in amdgpu_vm_handle_moved()
1635 bo_va->base.bo->tbo.resource->mem_type == TTM_PL_SYSTEM)) in amdgpu_vm_handle_moved()
1636 amdgpu_vm_bo_evicted_user(&bo_va->base); in amdgpu_vm_handle_moved()
1709 struct amdgpu_bo_va *bo_va; in amdgpu_vm_bo_add() local
1711 bo_va = kzalloc(sizeof(struct amdgpu_bo_va), GFP_KERNEL); in amdgpu_vm_bo_add()
1712 if (bo_va == NULL) { in amdgpu_vm_bo_add()
1715 amdgpu_vm_bo_base_init(&bo_va->base, vm, bo); in amdgpu_vm_bo_add()
1717 bo_va->ref_count = 1; in amdgpu_vm_bo_add()
1718 bo_va->last_pt_update = dma_fence_get_stub(); in amdgpu_vm_bo_add()
1719 INIT_LIST_HEAD(&bo_va->valids); in amdgpu_vm_bo_add()
1720 INIT_LIST_HEAD(&bo_va->invalids); in amdgpu_vm_bo_add()
1723 return bo_va; in amdgpu_vm_bo_add()
1727 bo_va->is_xgmi = true; in amdgpu_vm_bo_add()
1732 return bo_va; in amdgpu_vm_bo_add()
1746 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_insert_map() argument
1749 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_insert_map()
1750 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_insert_map()
1752 mapping->bo_va = bo_va; in amdgpu_vm_bo_insert_map()
1753 list_add(&mapping->list, &bo_va->invalids); in amdgpu_vm_bo_insert_map()
1759 if (amdgpu_vm_is_bo_always_valid(vm, bo) && !bo_va->base.moved) in amdgpu_vm_bo_insert_map()
1760 amdgpu_vm_bo_moved(&bo_va->base); in amdgpu_vm_bo_insert_map()
1762 trace_amdgpu_vm_bo_map(bo_va, mapping); in amdgpu_vm_bo_insert_map()
1814 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_map() argument
1819 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_map()
1820 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_map()
1849 amdgpu_vm_bo_insert_map(adev, bo_va, mapping); in amdgpu_vm_bo_map()
1873 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_replace_map() argument
1878 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_replace_map()
1891 r = amdgpu_vm_bo_clear_mappings(adev, bo_va->base.vm, saddr, size); in amdgpu_vm_bo_replace_map()
1905 amdgpu_vm_bo_insert_map(adev, bo_va, mapping); in amdgpu_vm_bo_replace_map()
1925 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_unmap() argument
1929 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_unmap()
1934 list_for_each_entry(mapping, &bo_va->valids, list) { in amdgpu_vm_bo_unmap()
1939 if (&mapping->list == &bo_va->valids) { in amdgpu_vm_bo_unmap()
1942 list_for_each_entry(mapping, &bo_va->invalids, list) { in amdgpu_vm_bo_unmap()
1947 if (&mapping->list == &bo_va->invalids) in amdgpu_vm_bo_unmap()
1953 mapping->bo_va = NULL; in amdgpu_vm_bo_unmap()
1954 trace_amdgpu_vm_bo_unmap(bo_va, mapping); in amdgpu_vm_bo_unmap()
1960 bo_va->last_pt_update); in amdgpu_vm_bo_unmap()
2016 before->bo_va = tmp->bo_va; in amdgpu_vm_bo_clear_mappings()
2017 list_add(&before->list, &tmp->bo_va->invalids); in amdgpu_vm_bo_clear_mappings()
2027 after->bo_va = tmp->bo_va; in amdgpu_vm_bo_clear_mappings()
2028 list_add(&after->list, &tmp->bo_va->invalids); in amdgpu_vm_bo_clear_mappings()
2047 tmp->bo_va = NULL; in amdgpu_vm_bo_clear_mappings()
2054 struct amdgpu_bo *bo = before->bo_va->base.bo; in amdgpu_vm_bo_clear_mappings()
2061 !before->bo_va->base.moved) in amdgpu_vm_bo_clear_mappings()
2062 amdgpu_vm_bo_moved(&before->bo_va->base); in amdgpu_vm_bo_clear_mappings()
2069 struct amdgpu_bo *bo = after->bo_va->base.bo; in amdgpu_vm_bo_clear_mappings()
2076 !after->bo_va->base.moved) in amdgpu_vm_bo_clear_mappings()
2077 amdgpu_vm_bo_moved(&after->bo_va->base); in amdgpu_vm_bo_clear_mappings()
2120 if (mapping->bo_va && mapping->bo_va->base.bo) { in amdgpu_vm_bo_trace_cs()
2123 bo = mapping->bo_va->base.bo; in amdgpu_vm_bo_trace_cs()
2144 struct amdgpu_bo_va *bo_va) in amdgpu_vm_bo_del() argument
2147 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_del()
2148 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_del()
2158 for (base = &bo_va->base.bo->vm_bo; *base; in amdgpu_vm_bo_del()
2160 if (*base != &bo_va->base) in amdgpu_vm_bo_del()
2164 *base = bo_va->base.next; in amdgpu_vm_bo_del()
2170 list_del(&bo_va->base.vm_status); in amdgpu_vm_bo_del()
2173 list_for_each_entry_safe(mapping, next, &bo_va->valids, list) { in amdgpu_vm_bo_del()
2176 mapping->bo_va = NULL; in amdgpu_vm_bo_del()
2177 trace_amdgpu_vm_bo_unmap(bo_va, mapping); in amdgpu_vm_bo_del()
2180 list_for_each_entry_safe(mapping, next, &bo_va->invalids, list) { in amdgpu_vm_bo_del()
2184 bo_va->last_pt_update); in amdgpu_vm_bo_del()
2187 dma_fence_put(bo_va->last_pt_update); in amdgpu_vm_bo_del()
2189 if (bo && bo_va->is_xgmi) in amdgpu_vm_bo_del()
2192 kfree(bo_va); in amdgpu_vm_bo_del()
3003 struct amdgpu_bo_va *bo_va, *tmp; in amdgpu_debugfs_vm_bo_info() local
3020 list_for_each_entry_safe(bo_va, tmp, &vm->idle, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3021 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3023 total_idle += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3029 list_for_each_entry_safe(bo_va, tmp, &vm->evicted, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3030 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3032 total_evicted += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3038 list_for_each_entry_safe(bo_va, tmp, &vm->relocated, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3039 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3041 total_relocated += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3047 list_for_each_entry_safe(bo_va, tmp, &vm->moved, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3048 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3050 total_moved += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3056 list_for_each_entry_safe(bo_va, tmp, &vm->invalidated, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3057 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3059 total_invalidated += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3065 list_for_each_entry_safe(bo_va, tmp, &vm->done, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3066 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3068 total_done += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()