Lines Matching refs:bo_va

1812 	struct amdgpu_bo_va *bo_va, *tmp;  in amdgpu_vm_get_memory()  local
1814 list_for_each_entry_safe(bo_va, tmp, &vm->idle, base.vm_status) { in amdgpu_vm_get_memory()
1815 if (!bo_va->base.bo) in amdgpu_vm_get_memory()
1817 amdgpu_bo_get_memory(bo_va->base.bo, vram_mem, in amdgpu_vm_get_memory()
1820 list_for_each_entry_safe(bo_va, tmp, &vm->evicted, base.vm_status) { in amdgpu_vm_get_memory()
1821 if (!bo_va->base.bo) in amdgpu_vm_get_memory()
1823 amdgpu_bo_get_memory(bo_va->base.bo, vram_mem, in amdgpu_vm_get_memory()
1826 list_for_each_entry_safe(bo_va, tmp, &vm->relocated, base.vm_status) { in amdgpu_vm_get_memory()
1827 if (!bo_va->base.bo) in amdgpu_vm_get_memory()
1829 amdgpu_bo_get_memory(bo_va->base.bo, vram_mem, in amdgpu_vm_get_memory()
1832 list_for_each_entry_safe(bo_va, tmp, &vm->moved, base.vm_status) { in amdgpu_vm_get_memory()
1833 if (!bo_va->base.bo) in amdgpu_vm_get_memory()
1835 amdgpu_bo_get_memory(bo_va->base.bo, vram_mem, in amdgpu_vm_get_memory()
1839 list_for_each_entry_safe(bo_va, tmp, &vm->invalidated, base.vm_status) { in amdgpu_vm_get_memory()
1840 if (!bo_va->base.bo) in amdgpu_vm_get_memory()
1842 amdgpu_bo_get_memory(bo_va->base.bo, vram_mem, in amdgpu_vm_get_memory()
1845 list_for_each_entry_safe(bo_va, tmp, &vm->done, base.vm_status) { in amdgpu_vm_get_memory()
1846 if (!bo_va->base.bo) in amdgpu_vm_get_memory()
1848 amdgpu_bo_get_memory(bo_va->base.bo, vram_mem, in amdgpu_vm_get_memory()
1866 int amdgpu_vm_bo_update(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_update() argument
1869 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_update()
1870 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_update()
1887 if (obj->import_attach && bo_va->is_xgmi) { in amdgpu_vm_bo_update()
1916 last_update = &bo_va->last_pt_update; in amdgpu_vm_bo_update()
1918 if (!clear && bo_va->base.moved) { in amdgpu_vm_bo_update()
1919 bo_va->base.moved = false; in amdgpu_vm_bo_update()
1920 list_splice_init(&bo_va->valids, &bo_va->invalids); in amdgpu_vm_bo_update()
1922 } else if (bo_va->cleared != clear) { in amdgpu_vm_bo_update()
1923 list_splice_init(&bo_va->valids, &bo_va->invalids); in amdgpu_vm_bo_update()
1926 list_for_each_entry(mapping, &bo_va->invalids, list) { in amdgpu_vm_bo_update()
1960 amdgpu_vm_bo_evicted(&bo_va->base); in amdgpu_vm_bo_update()
1962 amdgpu_vm_bo_idle(&bo_va->base); in amdgpu_vm_bo_update()
1964 amdgpu_vm_bo_done(&bo_va->base); in amdgpu_vm_bo_update()
1967 list_splice_init(&bo_va->invalids, &bo_va->valids); in amdgpu_vm_bo_update()
1968 bo_va->cleared = clear; in amdgpu_vm_bo_update()
1971 list_for_each_entry(mapping, &bo_va->valids, list) in amdgpu_vm_bo_update()
2191 struct amdgpu_bo_va *bo_va, *tmp; in amdgpu_vm_handle_moved() local
2196 list_for_each_entry_safe(bo_va, tmp, &vm->moved, base.vm_status) { in amdgpu_vm_handle_moved()
2198 r = amdgpu_vm_bo_update(adev, bo_va, false, NULL); in amdgpu_vm_handle_moved()
2205 bo_va = list_first_entry(&vm->invalidated, struct amdgpu_bo_va, in amdgpu_vm_handle_moved()
2207 resv = bo_va->base.bo->tbo.base.resv; in amdgpu_vm_handle_moved()
2217 r = amdgpu_vm_bo_update(adev, bo_va, clear, NULL); in amdgpu_vm_handle_moved()
2249 struct amdgpu_bo_va *bo_va; in amdgpu_vm_bo_add() local
2251 bo_va = kzalloc(sizeof(struct amdgpu_bo_va), GFP_KERNEL); in amdgpu_vm_bo_add()
2252 if (bo_va == NULL) { in amdgpu_vm_bo_add()
2255 amdgpu_vm_bo_base_init(&bo_va->base, vm, bo); in amdgpu_vm_bo_add()
2257 bo_va->ref_count = 1; in amdgpu_vm_bo_add()
2258 INIT_LIST_HEAD(&bo_va->valids); in amdgpu_vm_bo_add()
2259 INIT_LIST_HEAD(&bo_va->invalids); in amdgpu_vm_bo_add()
2262 return bo_va; in amdgpu_vm_bo_add()
2265 bo_va->is_xgmi = true; in amdgpu_vm_bo_add()
2270 return bo_va; in amdgpu_vm_bo_add()
2284 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_insert_map() argument
2287 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_insert_map()
2288 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_insert_map()
2290 mapping->bo_va = bo_va; in amdgpu_vm_bo_insert_map()
2291 list_add(&mapping->list, &bo_va->invalids); in amdgpu_vm_bo_insert_map()
2298 !bo_va->base.moved) { in amdgpu_vm_bo_insert_map()
2299 list_move(&bo_va->base.vm_status, &vm->moved); in amdgpu_vm_bo_insert_map()
2301 trace_amdgpu_vm_bo_map(bo_va, mapping); in amdgpu_vm_bo_insert_map()
2322 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_map() argument
2327 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_map()
2328 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_map()
2364 amdgpu_vm_bo_insert_map(adev, bo_va, mapping); in amdgpu_vm_bo_map()
2388 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_replace_map() argument
2393 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_replace_map()
2414 r = amdgpu_vm_bo_clear_mappings(adev, bo_va->base.vm, saddr, size); in amdgpu_vm_bo_replace_map()
2428 amdgpu_vm_bo_insert_map(adev, bo_va, mapping); in amdgpu_vm_bo_replace_map()
2448 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_unmap() argument
2452 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_unmap()
2457 list_for_each_entry(mapping, &bo_va->valids, list) { in amdgpu_vm_bo_unmap()
2462 if (&mapping->list == &bo_va->valids) { in amdgpu_vm_bo_unmap()
2465 list_for_each_entry(mapping, &bo_va->invalids, list) { in amdgpu_vm_bo_unmap()
2470 if (&mapping->list == &bo_va->invalids) in amdgpu_vm_bo_unmap()
2476 mapping->bo_va = NULL; in amdgpu_vm_bo_unmap()
2477 trace_amdgpu_vm_bo_unmap(bo_va, mapping); in amdgpu_vm_bo_unmap()
2483 bo_va->last_pt_update); in amdgpu_vm_bo_unmap()
2535 before->bo_va = tmp->bo_va; in amdgpu_vm_bo_clear_mappings()
2536 list_add(&before->list, &tmp->bo_va->invalids); in amdgpu_vm_bo_clear_mappings()
2546 after->bo_va = tmp->bo_va; in amdgpu_vm_bo_clear_mappings()
2547 list_add(&after->list, &tmp->bo_va->invalids); in amdgpu_vm_bo_clear_mappings()
2566 tmp->bo_va = NULL; in amdgpu_vm_bo_clear_mappings()
2627 if (mapping->bo_va && mapping->bo_va->base.bo) { in amdgpu_vm_bo_trace_cs()
2630 bo = mapping->bo_va->base.bo; in amdgpu_vm_bo_trace_cs()
2651 struct amdgpu_bo_va *bo_va) in amdgpu_vm_bo_rmv() argument
2654 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_rmv()
2655 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_rmv()
2662 for (base = &bo_va->base.bo->vm_bo; *base; in amdgpu_vm_bo_rmv()
2664 if (*base != &bo_va->base) in amdgpu_vm_bo_rmv()
2667 *base = bo_va->base.next; in amdgpu_vm_bo_rmv()
2673 list_del(&bo_va->base.vm_status); in amdgpu_vm_bo_rmv()
2676 list_for_each_entry_safe(mapping, next, &bo_va->valids, list) { in amdgpu_vm_bo_rmv()
2679 mapping->bo_va = NULL; in amdgpu_vm_bo_rmv()
2680 trace_amdgpu_vm_bo_unmap(bo_va, mapping); in amdgpu_vm_bo_rmv()
2683 list_for_each_entry_safe(mapping, next, &bo_va->invalids, list) { in amdgpu_vm_bo_rmv()
2687 bo_va->last_pt_update); in amdgpu_vm_bo_rmv()
2690 dma_fence_put(bo_va->last_pt_update); in amdgpu_vm_bo_rmv()
2692 if (bo && bo_va->is_xgmi) in amdgpu_vm_bo_rmv()
2695 kfree(bo_va); in amdgpu_vm_bo_rmv()
3454 struct amdgpu_bo_va *bo_va, *tmp; in amdgpu_debugfs_vm_bo_info() local
3470 list_for_each_entry_safe(bo_va, tmp, &vm->idle, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3471 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3473 total_idle += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3479 list_for_each_entry_safe(bo_va, tmp, &vm->evicted, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3480 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3482 total_evicted += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3488 list_for_each_entry_safe(bo_va, tmp, &vm->relocated, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3489 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3491 total_relocated += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3497 list_for_each_entry_safe(bo_va, tmp, &vm->moved, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3498 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3500 total_moved += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3507 list_for_each_entry_safe(bo_va, tmp, &vm->invalidated, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3508 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3510 total_invalidated += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
3516 list_for_each_entry_safe(bo_va, tmp, &vm->done, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
3517 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
3519 total_done += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()