Lines Matching full:mem
81 bo, bo->mem.num_pages, bo->mem.size >> 10, in ttm_bo_mem_space_debug()
82 bo->mem.size >> 20); in ttm_bo_mem_space_debug()
118 MPASS(bo->mem.mm_node == NULL); in ttm_bo_release_list()
164 if (!(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) { in ttm_bo_add_to_lru()
168 man = &bdev->man[bo->mem.mem_type]; in ttm_bo_add_to_lru()
411 struct ttm_mem_reg *mem, in ttm_bo_handle_move_mem() argument
416 bool old_is_pci = ttm_mem_reg_is_pci(bdev, &bo->mem); in ttm_bo_handle_move_mem()
417 bool new_is_pci = ttm_mem_reg_is_pci(bdev, mem); in ttm_bo_handle_move_mem()
418 struct ttm_mem_type_manager *old_man = &bdev->man[bo->mem.mem_type]; in ttm_bo_handle_move_mem()
419 struct ttm_mem_type_manager *new_man = &bdev->man[mem->mem_type]; in ttm_bo_handle_move_mem()
423 ((mem->placement & bo->mem.placement & TTM_PL_MASK_CACHING) == 0)) { in ttm_bo_handle_move_mem()
443 ret = ttm_tt_set_placement_caching(bo->ttm, mem->placement); in ttm_bo_handle_move_mem()
447 if (mem->mem_type != TTM_PL_SYSTEM) { in ttm_bo_handle_move_mem()
448 ret = ttm_tt_bind(bo->ttm, mem); in ttm_bo_handle_move_mem()
453 if (bo->mem.mem_type == TTM_PL_SYSTEM) { in ttm_bo_handle_move_mem()
455 bdev->driver->move_notify(bo, mem); in ttm_bo_handle_move_mem()
456 bo->mem = *mem; in ttm_bo_handle_move_mem()
457 mem->mm_node = NULL; in ttm_bo_handle_move_mem()
463 bdev->driver->move_notify(bo, mem); in ttm_bo_handle_move_mem()
467 ret = ttm_bo_move_ttm(bo, evict, no_wait_gpu, mem); in ttm_bo_handle_move_mem()
470 no_wait_gpu, mem); in ttm_bo_handle_move_mem()
472 ret = ttm_bo_move_memcpy(bo, evict, no_wait_gpu, mem); in ttm_bo_handle_move_mem()
476 struct ttm_mem_reg tmp_mem = *mem; in ttm_bo_handle_move_mem()
477 *mem = bo->mem; in ttm_bo_handle_move_mem()
478 bo->mem = tmp_mem; in ttm_bo_handle_move_mem()
479 bdev->driver->move_notify(bo, mem); in ttm_bo_handle_move_mem()
480 bo->mem = *mem; in ttm_bo_handle_move_mem()
481 *mem = tmp_mem; in ttm_bo_handle_move_mem()
489 ret = bdev->driver->invalidate_caches(bdev, bo->mem.placement); in ttm_bo_handle_move_mem()
495 if (bo->mem.mm_node) { in ttm_bo_handle_move_mem()
496 bo->offset = (bo->mem.start << PAGE_SHIFT) + in ttm_bo_handle_move_mem()
497 bdev->man[bo->mem.mem_type].gpu_offset; in ttm_bo_handle_move_mem()
498 bo->cur_placement = bo->mem.placement; in ttm_bo_handle_move_mem()
505 new_man = &bdev->man[bo->mem.mem_type]; in ttm_bo_handle_move_mem()
533 ttm_bo_mem_put(bo, &bo->mem); in ttm_bo_cleanup_memtype_use()
759 struct ttm_mem_type_manager *man = &bdev->man[bo->mem.mem_type]; in ttm_bo_release()
824 evict_mem = bo->mem; in ttm_bo_evict()
905 void ttm_bo_mem_put(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem) in ttm_bo_mem_put() argument
907 struct ttm_mem_type_manager *man = &bo->bdev->man[mem->mem_type]; in ttm_bo_mem_put()
909 if (mem->mm_node) in ttm_bo_mem_put()
910 (*man->func->put_node)(man, mem); in ttm_bo_mem_put()
920 struct ttm_mem_reg *mem, in ttm_bo_mem_force_space() argument
929 ret = (*man->func->get_node)(man, bo, placement, mem); in ttm_bo_mem_force_space()
932 if (mem->mm_node) in ttm_bo_mem_force_space()
939 if (mem->mm_node == NULL) in ttm_bo_mem_force_space()
941 mem->mem_type = mem_type; in ttm_bo_mem_force_space()
990 * Creates space for memory region @mem according to its type.
999 struct ttm_mem_reg *mem, in ttm_bo_mem_space() argument
1012 mem->mm_node = NULL; in ttm_bo_mem_space()
1028 cur_flags = ttm_bo_select_caching(man, bo->mem.placement, in ttm_bo_mem_space()
1042 ret = (*man->func->get_node)(man, bo, placement, mem); in ttm_bo_mem_space()
1046 if (mem->mm_node) in ttm_bo_mem_space()
1050 if ((type_ok && (mem_type == TTM_PL_SYSTEM)) || mem->mm_node) { in ttm_bo_mem_space()
1051 mem->mem_type = mem_type; in ttm_bo_mem_space()
1052 mem->placement = cur_flags; in ttm_bo_mem_space()
1073 cur_flags = ttm_bo_select_caching(man, bo->mem.placement, in ttm_bo_mem_space()
1084 mem->mem_type = mem_type; in ttm_bo_mem_space()
1085 mem->placement = cur_flags; in ttm_bo_mem_space()
1086 mem->mm_node = NULL; in ttm_bo_mem_space()
1090 ret = ttm_bo_mem_force_space(bo, mem_type, placement, mem, in ttm_bo_mem_space()
1092 if (ret == 0 && mem->mm_node) { in ttm_bo_mem_space()
1093 mem->placement = cur_flags; in ttm_bo_mem_space()
1110 struct ttm_mem_reg mem; in ttm_bo_move_buffer() local
1125 mem.num_pages = bo->num_pages; in ttm_bo_move_buffer()
1126 mem.size = mem.num_pages << PAGE_SHIFT; in ttm_bo_move_buffer()
1127 mem.page_alignment = bo->mem.page_alignment; in ttm_bo_move_buffer()
1128 mem.bus.io_reserved_vm = false; in ttm_bo_move_buffer()
1129 mem.bus.io_reserved_count = 0; in ttm_bo_move_buffer()
1133 ret = ttm_bo_mem_space(bo, placement, &mem, in ttm_bo_move_buffer()
1137 ret = ttm_bo_handle_move_mem(bo, &mem, false, in ttm_bo_move_buffer()
1140 if (ret && mem.mm_node) in ttm_bo_move_buffer()
1141 ttm_bo_mem_put(bo, &mem); in ttm_bo_move_buffer()
1146 struct ttm_mem_reg *mem) in ttm_bo_mem_compat() argument
1150 if (mem->mm_node && placement->lpfn != 0 && in ttm_bo_mem_compat()
1151 (mem->start < placement->fpfn || in ttm_bo_mem_compat()
1152 mem->start + mem->num_pages > placement->lpfn)) in ttm_bo_mem_compat()
1156 if ((placement->placement[i] & mem->placement & in ttm_bo_mem_compat()
1158 (placement->placement[i] & mem->placement & in ttm_bo_mem_compat()
1181 ret = ttm_bo_mem_compat(placement, &bo->mem); in ttm_bo_validate()
1192 ttm_flag_masked(&bo->mem.placement, placement->placement[ret], in ttm_bo_validate()
1198 if (bo->mem.mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) { in ttm_bo_validate()
1210 (bo->mem.num_pages > (placement->lpfn - placement->fpfn)))); in ttm_bo_check_placement()
1265 bo->mem.size = num_pages << PAGE_SHIFT; in ttm_bo_init()
1266 bo->mem.mem_type = TTM_PL_SYSTEM; in ttm_bo_init()
1267 bo->mem.num_pages = bo->num_pages; in ttm_bo_init()
1268 bo->mem.mm_node = NULL; in ttm_bo_init()
1269 bo->mem.page_alignment = page_alignment; in ttm_bo_init()
1270 bo->mem.bus.io_reserved_vm = false; in ttm_bo_init()
1271 bo->mem.bus.io_reserved_count = 0; in ttm_bo_init()
1273 bo->mem.placement = (TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED); in ttm_bo_init()
1627 bool ttm_mem_reg_is_pci(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) in ttm_mem_reg_is_pci() argument
1629 struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type]; in ttm_mem_reg_is_pci()
1632 if (mem->mem_type == TTM_PL_SYSTEM) in ttm_mem_reg_is_pci()
1638 if (mem->placement & TTM_PL_FLAG_CACHED) in ttm_mem_reg_is_pci()
1654 struct ttm_mem_type_manager *man = &bdev->man[bo->mem.mem_type]; in ttm_bo_unmap_virtual()
1692 bo->mem.num_pages, 0, 0); in ttm_bo_setup_vm()
1700 bo->mem.num_pages, 0); in ttm_bo_setup_vm()
1848 if ((bo->mem.placement & swap_placement) != swap_placement) { in ttm_bo_swapout()
1851 evict_mem = bo->mem; in ttm_bo_swapout()