Lines Matching refs:test
28 static struct ttm_placement *ttm_placement_kunit_init(struct kunit *test, in ttm_placement_kunit_init() argument
34 placement = kunit_kzalloc(test, sizeof(*placement), GFP_KERNEL); in ttm_placement_kunit_init()
35 KUNIT_ASSERT_NOT_NULL(test, placement); in ttm_placement_kunit_init()
53 static struct dma_fence *alloc_mock_fence(struct kunit *test) in alloc_mock_fence() argument
57 fence = kunit_kzalloc(test, sizeof(*fence), GFP_KERNEL); in alloc_mock_fence()
58 KUNIT_ASSERT_NOT_NULL(test, fence); in alloc_mock_fence()
65 static void dma_resv_kunit_active_fence_init(struct kunit *test, in dma_resv_kunit_active_fence_init() argument
71 fence = alloc_mock_fence(test); in dma_resv_kunit_active_fence_init()
104 static void ttm_bo_init_reserved_sys_man(struct kunit *test) in ttm_bo_init_reserved_sys_man() argument
106 const struct ttm_bo_validate_test_case *params = test->param_value; in ttm_bo_init_reserved_sys_man()
107 struct ttm_test_devices *priv = test->priv; in ttm_bo_init_reserved_sys_man()
116 bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL); in ttm_bo_init_reserved_sys_man()
117 KUNIT_ASSERT_NOT_NULL(test, bo); in ttm_bo_init_reserved_sys_man()
119 place = ttm_place_kunit_init(test, TTM_PL_SYSTEM, 0); in ttm_bo_init_reserved_sys_man()
120 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_init_reserved_sys_man()
129 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_init_reserved_sys_man()
130 KUNIT_EXPECT_EQ(test, kref_read(&bo->kref), 1); in ttm_bo_init_reserved_sys_man()
131 KUNIT_EXPECT_PTR_EQ(test, bo->bdev, priv->ttm_dev); in ttm_bo_init_reserved_sys_man()
132 KUNIT_EXPECT_EQ(test, bo->type, bo_type); in ttm_bo_init_reserved_sys_man()
133 KUNIT_EXPECT_EQ(test, bo->page_alignment, PAGE_SIZE); in ttm_bo_init_reserved_sys_man()
134 KUNIT_EXPECT_PTR_EQ(test, bo->destroy, &dummy_ttm_bo_destroy); in ttm_bo_init_reserved_sys_man()
135 KUNIT_EXPECT_EQ(test, bo->pin_count, 0); in ttm_bo_init_reserved_sys_man()
136 KUNIT_EXPECT_NULL(test, bo->bulk_move); in ttm_bo_init_reserved_sys_man()
137 KUNIT_EXPECT_NOT_NULL(test, bo->ttm); in ttm_bo_init_reserved_sys_man()
138 KUNIT_EXPECT_FALSE(test, ttm_tt_is_populated(bo->ttm)); in ttm_bo_init_reserved_sys_man()
139 KUNIT_EXPECT_NOT_NULL(test, (void *)bo->base.resv->fences); in ttm_bo_init_reserved_sys_man()
140 KUNIT_EXPECT_EQ(test, ctx.bytes_moved, size); in ttm_bo_init_reserved_sys_man()
143 KUNIT_EXPECT_TRUE(test, in ttm_bo_init_reserved_sys_man()
150 static void ttm_bo_init_reserved_mock_man(struct kunit *test) in ttm_bo_init_reserved_mock_man() argument
152 const struct ttm_bo_validate_test_case *params = test->param_value; in ttm_bo_init_reserved_mock_man()
154 struct ttm_test_devices *priv = test->priv; in ttm_bo_init_reserved_mock_man()
165 bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL); in ttm_bo_init_reserved_mock_man()
166 KUNIT_ASSERT_NOT_NULL(test, bo); in ttm_bo_init_reserved_mock_man()
168 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_init_reserved_mock_man()
169 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_init_reserved_mock_man()
178 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_init_reserved_mock_man()
179 KUNIT_EXPECT_EQ(test, kref_read(&bo->kref), 1); in ttm_bo_init_reserved_mock_man()
180 KUNIT_EXPECT_PTR_EQ(test, bo->bdev, priv->ttm_dev); in ttm_bo_init_reserved_mock_man()
181 KUNIT_EXPECT_EQ(test, bo->type, bo_type); in ttm_bo_init_reserved_mock_man()
182 KUNIT_EXPECT_EQ(test, ctx.bytes_moved, size); in ttm_bo_init_reserved_mock_man()
185 KUNIT_EXPECT_TRUE(test, in ttm_bo_init_reserved_mock_man()
193 static void ttm_bo_init_reserved_resv(struct kunit *test) in ttm_bo_init_reserved_resv() argument
196 struct ttm_test_devices *priv = test->priv; in ttm_bo_init_reserved_resv()
205 bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL); in ttm_bo_init_reserved_resv()
206 KUNIT_ASSERT_NOT_NULL(test, bo); in ttm_bo_init_reserved_resv()
208 place = ttm_place_kunit_init(test, TTM_PL_SYSTEM, 0); in ttm_bo_init_reserved_resv()
209 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_init_reserved_resv()
220 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_init_reserved_resv()
221 KUNIT_EXPECT_PTR_EQ(test, bo->base.resv, &resv); in ttm_bo_init_reserved_resv()
227 static void ttm_bo_validate_basic(struct kunit *test) in ttm_bo_validate_basic() argument
229 const struct ttm_bo_validate_test_case *params = test->param_value; in ttm_bo_validate_basic()
233 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_basic()
241 fst_place = ttm_place_kunit_init(test, fst_mem, 0); in ttm_bo_validate_basic()
242 fst_placement = ttm_placement_kunit_init(test, fst_place, 1); in ttm_bo_validate_basic()
244 bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL); in ttm_bo_validate_basic()
245 KUNIT_ASSERT_NOT_NULL(test, bo); in ttm_bo_validate_basic()
252 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_basic()
254 snd_place = ttm_place_kunit_init(test, snd_mem, DRM_BUDDY_TOPDOWN_ALLOCATION); in ttm_bo_validate_basic()
255 snd_placement = ttm_placement_kunit_init(test, snd_place, 1); in ttm_bo_validate_basic()
260 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_basic()
261 KUNIT_EXPECT_EQ(test, ctx_val.bytes_moved, bo->base.size); in ttm_bo_validate_basic()
262 KUNIT_EXPECT_NOT_NULL(test, bo->ttm); in ttm_bo_validate_basic()
263 KUNIT_EXPECT_TRUE(test, ttm_tt_is_populated(bo->ttm)); in ttm_bo_validate_basic()
264 KUNIT_EXPECT_EQ(test, bo->resource->mem_type, snd_mem); in ttm_bo_validate_basic()
265 KUNIT_EXPECT_EQ(test, bo->resource->placement, in ttm_bo_validate_basic()
272 static void ttm_bo_validate_invalid_placement(struct kunit *test) in ttm_bo_validate_invalid_placement() argument
283 place = ttm_place_kunit_init(test, unknown_mem_type, 0); in ttm_bo_validate_invalid_placement()
284 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_invalid_placement()
286 bo = ttm_bo_kunit_init(test, test->priv, size, NULL); in ttm_bo_validate_invalid_placement()
293 KUNIT_EXPECT_EQ(test, err, -ENOMEM); in ttm_bo_validate_invalid_placement()
298 static void ttm_bo_validate_failed_alloc(struct kunit *test) in ttm_bo_validate_failed_alloc() argument
301 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_failed_alloc()
310 bo = ttm_bo_kunit_init(test, test->priv, size, NULL); in ttm_bo_validate_failed_alloc()
315 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_failed_alloc()
316 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_failed_alloc()
322 KUNIT_EXPECT_EQ(test, err, -ENOMEM); in ttm_bo_validate_failed_alloc()
328 static void ttm_bo_validate_pinned(struct kunit *test) in ttm_bo_validate_pinned() argument
339 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_pinned()
340 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_pinned()
342 bo = ttm_bo_kunit_init(test, test->priv, size, NULL); in ttm_bo_validate_pinned()
350 KUNIT_EXPECT_EQ(test, err, -EINVAL); in ttm_bo_validate_pinned()
373 static void ttm_bo_validate_same_placement(struct kunit *test) in ttm_bo_validate_same_placement() argument
375 const struct ttm_bo_validate_test_case *params = test->param_value; in ttm_bo_validate_same_placement()
377 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_same_placement()
384 place = ttm_place_kunit_init(test, params->mem_type, 0); in ttm_bo_validate_same_placement()
385 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_same_placement()
390 bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL); in ttm_bo_validate_same_placement()
391 KUNIT_ASSERT_NOT_NULL(test, bo); in ttm_bo_validate_same_placement()
398 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_same_placement()
403 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_same_placement()
404 KUNIT_EXPECT_EQ(test, ctx_val.bytes_moved, 0); in ttm_bo_validate_same_placement()
412 static void ttm_bo_validate_busy_placement(struct kunit *test) in ttm_bo_validate_busy_placement() argument
418 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_busy_placement()
428 init_place = ttm_place_kunit_init(test, TTM_PL_SYSTEM, 0); in ttm_bo_validate_busy_placement()
429 placement_init = ttm_placement_kunit_init(test, init_place, 1); in ttm_bo_validate_busy_placement()
431 bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL); in ttm_bo_validate_busy_placement()
432 KUNIT_ASSERT_NOT_NULL(test, bo); in ttm_bo_validate_busy_placement()
439 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_busy_placement()
443 placement_val = ttm_placement_kunit_init(test, places, 2); in ttm_bo_validate_busy_placement()
450 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_busy_placement()
451 KUNIT_EXPECT_EQ(test, ctx_val.bytes_moved, bo->base.size); in ttm_bo_validate_busy_placement()
452 KUNIT_EXPECT_EQ(test, bo->resource->mem_type, snd_mem); in ttm_bo_validate_busy_placement()
453 KUNIT_ASSERT_TRUE(test, list_is_singular(&man->lru[bo->priority])); in ttm_bo_validate_busy_placement()
460 static void ttm_bo_validate_multihop(struct kunit *test) in ttm_bo_validate_multihop() argument
462 const struct ttm_bo_validate_test_case *params = test->param_value; in ttm_bo_validate_multihop()
466 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_multihop()
475 fst_place = ttm_place_kunit_init(test, fst_mem, 0); in ttm_bo_validate_multihop()
476 placement_init = ttm_placement_kunit_init(test, fst_place, 1); in ttm_bo_validate_multihop()
478 bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL); in ttm_bo_validate_multihop()
479 KUNIT_ASSERT_NOT_NULL(test, bo); in ttm_bo_validate_multihop()
486 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_multihop()
488 final_place = ttm_place_kunit_init(test, final_mem, 0); in ttm_bo_validate_multihop()
489 placement_val = ttm_placement_kunit_init(test, final_place, 1); in ttm_bo_validate_multihop()
494 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_multihop()
495 KUNIT_EXPECT_EQ(test, ctx_val.bytes_moved, size * 2); in ttm_bo_validate_multihop()
496 KUNIT_EXPECT_EQ(test, bo->resource->mem_type, final_mem); in ttm_bo_validate_multihop()
517 static void ttm_bo_validate_no_placement_signaled(struct kunit *test) in ttm_bo_validate_no_placement_signaled() argument
519 const struct ttm_bo_validate_test_case *params = test->param_value; in ttm_bo_validate_no_placement_signaled()
521 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_no_placement_signaled()
533 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_no_placement_signaled()
536 bo = ttm_bo_kunit_init(test, test->priv, size, NULL); in ttm_bo_validate_no_placement_signaled()
545 placement = kunit_kzalloc(test, sizeof(*placement), GFP_KERNEL); in ttm_bo_validate_no_placement_signaled()
546 KUNIT_ASSERT_NOT_NULL(test, placement); in ttm_bo_validate_no_placement_signaled()
551 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_no_placement_signaled()
552 KUNIT_ASSERT_EQ(test, man->usage, size); in ttm_bo_validate_no_placement_signaled()
557 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_no_placement_signaled()
558 KUNIT_ASSERT_EQ(test, man->usage, 0); in ttm_bo_validate_no_placement_signaled()
559 KUNIT_ASSERT_NOT_NULL(test, bo->ttm); in ttm_bo_validate_no_placement_signaled()
560 KUNIT_EXPECT_EQ(test, ctx.bytes_moved, 0); in ttm_bo_validate_no_placement_signaled()
565 KUNIT_ASSERT_PTR_EQ(test, bo->ttm, old_tt); in ttm_bo_validate_no_placement_signaled()
566 KUNIT_ASSERT_FALSE(test, flags & TTM_TT_FLAG_PRIV_POPULATED); in ttm_bo_validate_no_placement_signaled()
567 KUNIT_ASSERT_TRUE(test, flags & TTM_TT_FLAG_ZERO_ALLOC); in ttm_bo_validate_no_placement_signaled()
589 static void ttm_bo_validate_no_placement_not_signaled(struct kunit *test) in ttm_bo_validate_no_placement_not_signaled() argument
591 const struct ttm_bo_validate_test_case *params = test->param_value; in ttm_bo_validate_no_placement_not_signaled()
602 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_no_placement_not_signaled()
604 bo = ttm_bo_kunit_init(test, test->priv, size, NULL); in ttm_bo_validate_no_placement_not_signaled()
608 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_no_placement_not_signaled()
610 placement = kunit_kzalloc(test, sizeof(*placement), GFP_KERNEL); in ttm_bo_validate_no_placement_not_signaled()
611 KUNIT_ASSERT_NOT_NULL(test, placement); in ttm_bo_validate_no_placement_not_signaled()
615 dma_resv_kunit_active_fence_init(test, bo->base.resv, usage); in ttm_bo_validate_no_placement_not_signaled()
619 KUNIT_FAIL(test, "Couldn't create dma resv signal task\n"); in ttm_bo_validate_no_placement_not_signaled()
626 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_no_placement_not_signaled()
627 KUNIT_ASSERT_NOT_NULL(test, bo->ttm); in ttm_bo_validate_no_placement_not_signaled()
628 KUNIT_ASSERT_NULL(test, bo->resource); in ttm_bo_validate_no_placement_not_signaled()
629 KUNIT_ASSERT_NULL(test, bo->bulk_move); in ttm_bo_validate_no_placement_not_signaled()
630 KUNIT_EXPECT_EQ(test, ctx.bytes_moved, 0); in ttm_bo_validate_no_placement_not_signaled()
633 KUNIT_ASSERT_PTR_EQ(test, bo->base.resv, &bo->base._resv); in ttm_bo_validate_no_placement_not_signaled()
641 static void ttm_bo_validate_move_fence_signaled(struct kunit *test) in ttm_bo_validate_move_fence_signaled() argument
644 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_move_fence_signaled()
657 bo = ttm_bo_kunit_init(test, test->priv, size, NULL); in ttm_bo_validate_move_fence_signaled()
660 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_move_fence_signaled()
661 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_move_fence_signaled()
667 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_move_fence_signaled()
668 KUNIT_EXPECT_EQ(test, bo->resource->mem_type, mem_type); in ttm_bo_validate_move_fence_signaled()
669 KUNIT_EXPECT_EQ(test, ctx.bytes_moved, size); in ttm_bo_validate_move_fence_signaled()
698 static void ttm_bo_validate_move_fence_not_signaled(struct kunit *test) in ttm_bo_validate_move_fence_not_signaled() argument
700 const struct ttm_bo_validate_test_case *params = test->param_value; in ttm_bo_validate_move_fence_not_signaled()
706 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_move_fence_not_signaled()
714 init_place = ttm_place_kunit_init(test, TTM_PL_SYSTEM, 0); in ttm_bo_validate_move_fence_not_signaled()
715 placement_init = ttm_placement_kunit_init(test, init_place, 1); in ttm_bo_validate_move_fence_not_signaled()
717 bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL); in ttm_bo_validate_move_fence_not_signaled()
718 KUNIT_ASSERT_NOT_NULL(test, bo); in ttm_bo_validate_move_fence_not_signaled()
725 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_move_fence_not_signaled()
732 placement_val = ttm_placement_kunit_init(test, places, 2); in ttm_bo_validate_move_fence_not_signaled()
736 man->move = alloc_mock_fence(test); in ttm_bo_validate_move_fence_not_signaled()
740 KUNIT_FAIL(test, "Couldn't create move fence signal task\n"); in ttm_bo_validate_move_fence_not_signaled()
748 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_move_fence_not_signaled()
749 KUNIT_EXPECT_EQ(test, ctx_val.bytes_moved, size); in ttm_bo_validate_move_fence_not_signaled()
752 KUNIT_EXPECT_EQ(test, bo->resource->mem_type, snd_mem); in ttm_bo_validate_move_fence_not_signaled()
754 KUNIT_EXPECT_EQ(test, bo->resource->mem_type, fst_mem); in ttm_bo_validate_move_fence_not_signaled()
761 static void ttm_bo_validate_happy_evict(struct kunit *test) in ttm_bo_validate_happy_evict() argument
770 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_happy_evict()
780 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_happy_evict()
781 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_happy_evict()
783 bos = kunit_kmalloc_array(test, bo_no, sizeof(*bos), GFP_KERNEL); in ttm_bo_validate_happy_evict()
784 KUNIT_ASSERT_NOT_NULL(test, bos); in ttm_bo_validate_happy_evict()
795 bo_val = ttm_bo_kunit_init(test, test->priv, BO_SIZE, NULL); in ttm_bo_validate_happy_evict()
802 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_happy_evict()
803 KUNIT_EXPECT_EQ(test, bos[0].resource->mem_type, mem_type_evict); in ttm_bo_validate_happy_evict()
804 KUNIT_EXPECT_TRUE(test, bos[0].ttm->page_flags & TTM_TT_FLAG_ZERO_ALLOC); in ttm_bo_validate_happy_evict()
805 KUNIT_EXPECT_TRUE(test, bos[0].ttm->page_flags & TTM_TT_FLAG_PRIV_POPULATED); in ttm_bo_validate_happy_evict()
806 KUNIT_EXPECT_EQ(test, ctx_val.bytes_moved, small * 2 + BO_SIZE); in ttm_bo_validate_happy_evict()
807 KUNIT_EXPECT_EQ(test, bos[1].resource->mem_type, mem_type); in ttm_bo_validate_happy_evict()
817 static void ttm_bo_validate_all_pinned_evict(struct kunit *test) in ttm_bo_validate_all_pinned_evict() argument
822 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_all_pinned_evict()
831 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_all_pinned_evict()
832 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_all_pinned_evict()
834 bo_big = kunit_kzalloc(test, sizeof(*bo_big), GFP_KERNEL); in ttm_bo_validate_all_pinned_evict()
835 KUNIT_ASSERT_NOT_NULL(test, bo_big); in ttm_bo_validate_all_pinned_evict()
841 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_all_pinned_evict()
846 bo_small = ttm_bo_kunit_init(test, test->priv, BO_SIZE, NULL); in ttm_bo_validate_all_pinned_evict()
853 KUNIT_EXPECT_EQ(test, err, -ENOMEM); in ttm_bo_validate_all_pinned_evict()
866 static void ttm_bo_validate_allowed_only_evict(struct kunit *test) in ttm_bo_validate_allowed_only_evict() argument
873 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_allowed_only_evict()
882 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_allowed_only_evict()
883 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_allowed_only_evict()
885 bo_pinned = kunit_kzalloc(test, sizeof(*bo_pinned), GFP_KERNEL); in ttm_bo_validate_allowed_only_evict()
886 KUNIT_ASSERT_NOT_NULL(test, bo_pinned); in ttm_bo_validate_allowed_only_evict()
892 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_allowed_only_evict()
896 bo_evictable = kunit_kzalloc(test, sizeof(*bo_evictable), GFP_KERNEL); in ttm_bo_validate_allowed_only_evict()
897 KUNIT_ASSERT_NOT_NULL(test, bo_evictable); in ttm_bo_validate_allowed_only_evict()
903 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_allowed_only_evict()
906 bo = ttm_bo_kunit_init(test, test->priv, BO_SIZE, NULL); in ttm_bo_validate_allowed_only_evict()
913 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_allowed_only_evict()
914 KUNIT_EXPECT_EQ(test, bo->resource->mem_type, mem_type); in ttm_bo_validate_allowed_only_evict()
915 KUNIT_EXPECT_EQ(test, bo_pinned->resource->mem_type, mem_type); in ttm_bo_validate_allowed_only_evict()
916 KUNIT_EXPECT_EQ(test, bo_evictable->resource->mem_type, mem_type_evict); in ttm_bo_validate_allowed_only_evict()
917 KUNIT_EXPECT_EQ(test, ctx_val.bytes_moved, size * 2 + BO_SIZE); in ttm_bo_validate_allowed_only_evict()
931 static void ttm_bo_validate_deleted_evict(struct kunit *test) in ttm_bo_validate_deleted_evict() argument
937 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_deleted_evict()
947 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_deleted_evict()
948 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_deleted_evict()
950 bo_big = kunit_kzalloc(test, sizeof(*bo_big), GFP_KERNEL); in ttm_bo_validate_deleted_evict()
951 KUNIT_ASSERT_NOT_NULL(test, bo_big); in ttm_bo_validate_deleted_evict()
957 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_deleted_evict()
958 KUNIT_EXPECT_EQ(test, ttm_resource_manager_usage(man), big); in ttm_bo_validate_deleted_evict()
963 bo_small = ttm_bo_kunit_init(test, test->priv, small, NULL); in ttm_bo_validate_deleted_evict()
970 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_deleted_evict()
971 KUNIT_EXPECT_EQ(test, bo_small->resource->mem_type, mem_type); in ttm_bo_validate_deleted_evict()
972 KUNIT_EXPECT_EQ(test, ttm_resource_manager_usage(man), small); in ttm_bo_validate_deleted_evict()
973 KUNIT_EXPECT_NULL(test, bo_big->ttm); in ttm_bo_validate_deleted_evict()
974 KUNIT_EXPECT_NULL(test, bo_big->resource); in ttm_bo_validate_deleted_evict()
981 static void ttm_bo_validate_busy_domain_evict(struct kunit *test) in ttm_bo_validate_busy_domain_evict() argument
986 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_busy_domain_evict()
998 err = ttm_device_kunit_init_bad_evict(test->priv, priv->ttm_dev, false, false); in ttm_bo_validate_busy_domain_evict()
999 KUNIT_ASSERT_EQ(test, err, 0); in ttm_bo_validate_busy_domain_evict()
1004 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_busy_domain_evict()
1005 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_busy_domain_evict()
1007 bo_init = kunit_kzalloc(test, sizeof(*bo_init), GFP_KERNEL); in ttm_bo_validate_busy_domain_evict()
1008 KUNIT_ASSERT_NOT_NULL(test, bo_init); in ttm_bo_validate_busy_domain_evict()
1014 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_busy_domain_evict()
1017 bo_val = ttm_bo_kunit_init(test, test->priv, BO_SIZE, NULL); in ttm_bo_validate_busy_domain_evict()
1024 KUNIT_EXPECT_EQ(test, err, -ENOMEM); in ttm_bo_validate_busy_domain_evict()
1025 KUNIT_EXPECT_EQ(test, bo_init->resource->mem_type, mem_type); in ttm_bo_validate_busy_domain_evict()
1026 KUNIT_EXPECT_NULL(test, bo_val->resource); in ttm_bo_validate_busy_domain_evict()
1035 static void ttm_bo_validate_evict_gutting(struct kunit *test) in ttm_bo_validate_evict_gutting() argument
1039 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_evict_gutting()
1048 place = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_evict_gutting()
1049 placement = ttm_placement_kunit_init(test, place, 1); in ttm_bo_validate_evict_gutting()
1051 bo_evict = kunit_kzalloc(test, sizeof(*bo_evict), GFP_KERNEL); in ttm_bo_validate_evict_gutting()
1052 KUNIT_ASSERT_NOT_NULL(test, bo_evict); in ttm_bo_validate_evict_gutting()
1058 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_evict_gutting()
1061 bo = ttm_bo_kunit_init(test, test->priv, BO_SIZE, NULL); in ttm_bo_validate_evict_gutting()
1068 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_evict_gutting()
1069 KUNIT_EXPECT_EQ(test, bo->resource->mem_type, mem_type); in ttm_bo_validate_evict_gutting()
1070 KUNIT_ASSERT_NULL(test, bo_evict->resource); in ttm_bo_validate_evict_gutting()
1071 KUNIT_ASSERT_TRUE(test, bo_evict->ttm->page_flags & TTM_TT_FLAG_ZERO_ALLOC); in ttm_bo_validate_evict_gutting()
1079 static void ttm_bo_validate_recrusive_evict(struct kunit *test) in ttm_bo_validate_recrusive_evict() argument
1086 struct ttm_test_devices *priv = test->priv; in ttm_bo_validate_recrusive_evict()
1093 place_tt = ttm_place_kunit_init(test, mem_type, 0); in ttm_bo_validate_recrusive_evict()
1094 place_mock = ttm_place_kunit_init(test, mem_type_evict, 0); in ttm_bo_validate_recrusive_evict()
1096 placement_tt = ttm_placement_kunit_init(test, place_tt, 1); in ttm_bo_validate_recrusive_evict()
1097 placement_mock = ttm_placement_kunit_init(test, place_mock, 1); in ttm_bo_validate_recrusive_evict()
1099 bo_tt = kunit_kzalloc(test, sizeof(*bo_tt), GFP_KERNEL); in ttm_bo_validate_recrusive_evict()
1100 KUNIT_ASSERT_NOT_NULL(test, bo_tt); in ttm_bo_validate_recrusive_evict()
1102 bo_mock = kunit_kzalloc(test, sizeof(*bo_mock), GFP_KERNEL); in ttm_bo_validate_recrusive_evict()
1103 KUNIT_ASSERT_NOT_NULL(test, bo_mock); in ttm_bo_validate_recrusive_evict()
1109 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_recrusive_evict()
1116 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_recrusive_evict()
1119 bo_val = ttm_bo_kunit_init(test, test->priv, BO_SIZE, NULL); in ttm_bo_validate_recrusive_evict()
1126 KUNIT_EXPECT_EQ(test, err, 0); in ttm_bo_validate_recrusive_evict()