Lines Matching refs:bo_va

1006 static void amdgpu_vm_bo_get_memory(struct amdgpu_bo_va *bo_va,  in amdgpu_vm_bo_get_memory()  argument
1009 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_get_memory()
1010 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_get_memory()
1031 struct amdgpu_bo_va *bo_va, *tmp; in amdgpu_vm_get_memory() local
1034 list_for_each_entry_safe(bo_va, tmp, &vm->idle, base.vm_status) in amdgpu_vm_get_memory()
1035 amdgpu_vm_bo_get_memory(bo_va, stats); in amdgpu_vm_get_memory()
1037 list_for_each_entry_safe(bo_va, tmp, &vm->evicted, base.vm_status) in amdgpu_vm_get_memory()
1038 amdgpu_vm_bo_get_memory(bo_va, stats); in amdgpu_vm_get_memory()
1040 list_for_each_entry_safe(bo_va, tmp, &vm->relocated, base.vm_status) in amdgpu_vm_get_memory()
1041 amdgpu_vm_bo_get_memory(bo_va, stats); in amdgpu_vm_get_memory()
1043 list_for_each_entry_safe(bo_va, tmp, &vm->moved, base.vm_status) in amdgpu_vm_get_memory()
1044 amdgpu_vm_bo_get_memory(bo_va, stats); in amdgpu_vm_get_memory()
1046 list_for_each_entry_safe(bo_va, tmp, &vm->invalidated, base.vm_status) in amdgpu_vm_get_memory()
1047 amdgpu_vm_bo_get_memory(bo_va, stats); in amdgpu_vm_get_memory()
1049 list_for_each_entry_safe(bo_va, tmp, &vm->done, base.vm_status) in amdgpu_vm_get_memory()
1050 amdgpu_vm_bo_get_memory(bo_va, stats); in amdgpu_vm_get_memory()
1066 int amdgpu_vm_bo_update(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_update() argument
1069 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_update()
1070 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_update()
1088 if (obj->import_attach && bo_va->is_xgmi) { in amdgpu_vm_bo_update()
1122 last_update = &bo_va->last_pt_update; in amdgpu_vm_bo_update()
1124 if (!clear && bo_va->base.moved) { in amdgpu_vm_bo_update()
1126 list_splice_init(&bo_va->valids, &bo_va->invalids); in amdgpu_vm_bo_update()
1128 } else if (bo_va->cleared != clear) { in amdgpu_vm_bo_update()
1129 list_splice_init(&bo_va->valids, &bo_va->invalids); in amdgpu_vm_bo_update()
1132 list_for_each_entry(mapping, &bo_va->invalids, list) { in amdgpu_vm_bo_update()
1166 amdgpu_vm_bo_evicted(&bo_va->base); in amdgpu_vm_bo_update()
1168 amdgpu_vm_bo_idle(&bo_va->base); in amdgpu_vm_bo_update()
1170 amdgpu_vm_bo_done(&bo_va->base); in amdgpu_vm_bo_update()
1173 list_splice_init(&bo_va->invalids, &bo_va->valids); in amdgpu_vm_bo_update()
1174 bo_va->cleared = clear; in amdgpu_vm_bo_update()
1175 bo_va->base.moved = false; in amdgpu_vm_bo_update()
1178 list_for_each_entry(mapping, &bo_va->valids, list) in amdgpu_vm_bo_update()
1382 struct amdgpu_bo_va *bo_va; in amdgpu_vm_handle_moved() local
1389 bo_va = list_first_entry(&vm->moved, struct amdgpu_bo_va, in amdgpu_vm_handle_moved()
1394 r = amdgpu_vm_bo_update(adev, bo_va, false); in amdgpu_vm_handle_moved()
1401 bo_va = list_first_entry(&vm->invalidated, struct amdgpu_bo_va, in amdgpu_vm_handle_moved()
1403 resv = bo_va->base.bo->tbo.base.resv; in amdgpu_vm_handle_moved()
1413 r = amdgpu_vm_bo_update(adev, bo_va, clear); in amdgpu_vm_handle_moved()
1445 struct amdgpu_bo_va *bo_va; in amdgpu_vm_bo_add() local
1447 bo_va = kzalloc(sizeof(struct amdgpu_bo_va), GFP_KERNEL); in amdgpu_vm_bo_add()
1448 if (bo_va == NULL) { in amdgpu_vm_bo_add()
1451 amdgpu_vm_bo_base_init(&bo_va->base, vm, bo); in amdgpu_vm_bo_add()
1453 bo_va->ref_count = 1; in amdgpu_vm_bo_add()
1454 bo_va->last_pt_update = dma_fence_get_stub(); in amdgpu_vm_bo_add()
1455 INIT_LIST_HEAD(&bo_va->valids); in amdgpu_vm_bo_add()
1456 INIT_LIST_HEAD(&bo_va->invalids); in amdgpu_vm_bo_add()
1459 return bo_va; in amdgpu_vm_bo_add()
1463 bo_va->is_xgmi = true; in amdgpu_vm_bo_add()
1468 return bo_va; in amdgpu_vm_bo_add()
1482 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_insert_map() argument
1485 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_insert_map()
1486 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_insert_map()
1488 mapping->bo_va = bo_va; in amdgpu_vm_bo_insert_map()
1489 list_add(&mapping->list, &bo_va->invalids); in amdgpu_vm_bo_insert_map()
1496 !bo_va->base.moved) { in amdgpu_vm_bo_insert_map()
1497 amdgpu_vm_bo_moved(&bo_va->base); in amdgpu_vm_bo_insert_map()
1499 trace_amdgpu_vm_bo_map(bo_va, mapping); in amdgpu_vm_bo_insert_map()
1520 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_map() argument
1525 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_map()
1526 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_map()
1562 amdgpu_vm_bo_insert_map(adev, bo_va, mapping); in amdgpu_vm_bo_map()
1586 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_replace_map() argument
1591 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_replace_map()
1612 r = amdgpu_vm_bo_clear_mappings(adev, bo_va->base.vm, saddr, size); in amdgpu_vm_bo_replace_map()
1626 amdgpu_vm_bo_insert_map(adev, bo_va, mapping); in amdgpu_vm_bo_replace_map()
1646 struct amdgpu_bo_va *bo_va, in amdgpu_vm_bo_unmap() argument
1650 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_unmap()
1655 list_for_each_entry(mapping, &bo_va->valids, list) { in amdgpu_vm_bo_unmap()
1660 if (&mapping->list == &bo_va->valids) { in amdgpu_vm_bo_unmap()
1663 list_for_each_entry(mapping, &bo_va->invalids, list) { in amdgpu_vm_bo_unmap()
1668 if (&mapping->list == &bo_va->invalids) in amdgpu_vm_bo_unmap()
1674 mapping->bo_va = NULL; in amdgpu_vm_bo_unmap()
1675 trace_amdgpu_vm_bo_unmap(bo_va, mapping); in amdgpu_vm_bo_unmap()
1681 bo_va->last_pt_update); in amdgpu_vm_bo_unmap()
1733 before->bo_va = tmp->bo_va; in amdgpu_vm_bo_clear_mappings()
1734 list_add(&before->list, &tmp->bo_va->invalids); in amdgpu_vm_bo_clear_mappings()
1744 after->bo_va = tmp->bo_va; in amdgpu_vm_bo_clear_mappings()
1745 list_add(&after->list, &tmp->bo_va->invalids); in amdgpu_vm_bo_clear_mappings()
1764 tmp->bo_va = NULL; in amdgpu_vm_bo_clear_mappings()
1771 struct amdgpu_bo *bo = before->bo_va->base.bo; in amdgpu_vm_bo_clear_mappings()
1778 !before->bo_va->base.moved) in amdgpu_vm_bo_clear_mappings()
1779 amdgpu_vm_bo_moved(&before->bo_va->base); in amdgpu_vm_bo_clear_mappings()
1786 struct amdgpu_bo *bo = after->bo_va->base.bo; in amdgpu_vm_bo_clear_mappings()
1793 !after->bo_va->base.moved) in amdgpu_vm_bo_clear_mappings()
1794 amdgpu_vm_bo_moved(&after->bo_va->base); in amdgpu_vm_bo_clear_mappings()
1837 if (mapping->bo_va && mapping->bo_va->base.bo) { in amdgpu_vm_bo_trace_cs()
1840 bo = mapping->bo_va->base.bo; in amdgpu_vm_bo_trace_cs()
1861 struct amdgpu_bo_va *bo_va) in amdgpu_vm_bo_del() argument
1864 struct amdgpu_bo *bo = bo_va->base.bo; in amdgpu_vm_bo_del()
1865 struct amdgpu_vm *vm = bo_va->base.vm; in amdgpu_vm_bo_del()
1875 for (base = &bo_va->base.bo->vm_bo; *base; in amdgpu_vm_bo_del()
1877 if (*base != &bo_va->base) in amdgpu_vm_bo_del()
1880 *base = bo_va->base.next; in amdgpu_vm_bo_del()
1886 list_del(&bo_va->base.vm_status); in amdgpu_vm_bo_del()
1889 list_for_each_entry_safe(mapping, next, &bo_va->valids, list) { in amdgpu_vm_bo_del()
1892 mapping->bo_va = NULL; in amdgpu_vm_bo_del()
1893 trace_amdgpu_vm_bo_unmap(bo_va, mapping); in amdgpu_vm_bo_del()
1896 list_for_each_entry_safe(mapping, next, &bo_va->invalids, list) { in amdgpu_vm_bo_del()
1900 bo_va->last_pt_update); in amdgpu_vm_bo_del()
1903 dma_fence_put(bo_va->last_pt_update); in amdgpu_vm_bo_del()
1905 if (bo && bo_va->is_xgmi) in amdgpu_vm_bo_del()
1908 kfree(bo_va); in amdgpu_vm_bo_del()
2650 struct amdgpu_bo_va *bo_va, *tmp; in amdgpu_debugfs_vm_bo_info() local
2667 list_for_each_entry_safe(bo_va, tmp, &vm->idle, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
2668 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
2670 total_idle += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
2676 list_for_each_entry_safe(bo_va, tmp, &vm->evicted, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
2677 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
2679 total_evicted += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
2685 list_for_each_entry_safe(bo_va, tmp, &vm->relocated, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
2686 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
2688 total_relocated += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
2694 list_for_each_entry_safe(bo_va, tmp, &vm->moved, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
2695 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
2697 total_moved += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
2703 list_for_each_entry_safe(bo_va, tmp, &vm->invalidated, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
2704 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
2706 total_invalidated += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()
2712 list_for_each_entry_safe(bo_va, tmp, &vm->done, base.vm_status) { in amdgpu_debugfs_vm_bo_info()
2713 if (!bo_va->base.bo) in amdgpu_debugfs_vm_bo_info()
2715 total_done += amdgpu_bo_print_info(id++, bo_va->base.bo, m); in amdgpu_debugfs_vm_bo_info()