Re: [PATCH v10 4/9] drm/ttm/tests: Add tests with mock resource managers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Amaranath,

Many thanks for your review and comments.

On 15.04.2024 14:10, Somalapuram, Amaranath wrote:
+static void ttm_bo_validate_basic(struct kunit *test)
+{
+    const struct ttm_bo_validate_test_case *params = test->param_value;
+    uint32_t fst_mem = TTM_PL_SYSTEM, snd_mem = TTM_PL_VRAM;
+    struct ttm_operation_ctx ctx_init = { }, ctx_val = { };
+    struct ttm_placement *fst_placement, *snd_placement;
+    struct ttm_test_devices *priv = test->priv;
+    struct ttm_place *fst_place, *snd_place;
+    uint32_t size = ALIGN(SZ_8K, PAGE_SIZE);
+    struct ttm_buffer_object *bo;
+    int err;
+
+    ttm_mock_manager_init(priv->ttm_dev, snd_mem, MANAGER_SIZE);
+
+    fst_place = ttm_place_kunit_init(test, fst_mem, 0);
+    fst_placement = ttm_placement_kunit_init(test, fst_place, 1);
+
+    bo = kunit_kzalloc(test, sizeof(*bo), GFP_KERNEL);
+    KUNIT_ASSERT_NOT_NULL(test, bo);
+
+    drm_gem_private_object_init(priv->drm, &bo->base, size);
+
+    err = ttm_bo_init_reserved(priv->ttm_dev, bo, params->bo_type,
+                   fst_placement, PAGE_SIZE, &ctx_init, NULL,
+                   NULL, &dummy_ttm_bo_destroy);
+    KUNIT_EXPECT_EQ(test, err, 0);
+
+    snd_place = ttm_place_kunit_init(test, snd_mem, DRM_BUDDY_TOPDOWN_ALLOCATION);
+    snd_placement = ttm_placement_kunit_init(test, snd_place, 1);
+
+    err = ttm_bo_validate(bo, snd_placement, &ctx_val);
+    dma_resv_unlock(bo->base.resv);
+
+    KUNIT_EXPECT_EQ(test, err, 0);
+    KUNIT_EXPECT_EQ(test, ctx_val.bytes_moved, bo->base.size);
+    KUNIT_EXPECT_NOT_NULL(test, bo->ttm);
+    KUNIT_EXPECT_TRUE(test, ttm_tt_is_populated(bo->ttm));
+    KUNIT_EXPECT_EQ(test, bo->resource->mem_type, snd_mem);
+    KUNIT_EXPECT_EQ(test, bo->resource->placement,
+            DRM_BUDDY_TOPDOWN_ALLOCATION);
+
+    ttm_bo_put(bo);
+    ttm_mock_manager_fini(priv->ttm_dev, snd_mem);

ttm_mock_manager_fini for fst_mem is missing ?

Regards,
S.Amarnath

For fst_mem, I'm reusing sysmem manager which gets cleaned in
ttm_device_fini(), so there's no need to call fini on it beforehand.

All the best,
Karolina



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux