summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/ttm/tests/ttm_mock_manager.c
diff options
context:
space:
mode:
authorKarolina Stolarek <karolina.stolarek@intel.com>2024-06-12 14:03:02 +0200
committerArunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>2024-06-24 16:01:21 +0530
commit5fe3943385c987f73f99cdfa99785424a9d32a41 (patch)
tree41cff1fbcaccd062215f9d19cfd29621416885cc /drivers/gpu/drm/ttm/tests/ttm_mock_manager.c
parent8eda41dfc9b2f04c03858cf33c79eb1e6e9249b1 (diff)
drm/ttm/tests: Add eviction testing
Add tests for ttm_bo_validate that focus on BO eviction and swapout. Update device funcs definition with eviction-related callbacks. Add alternative funcs where evict_flags() routes eviction to a domain that can't allocate resources (dubbed "busy manager" in the tests). Extract the common path of ttm_device init into a function. Signed-off-by: Karolina Stolarek <karolina.stolarek@intel.com> Reviewed-by: Somalapuram, Amaranath <asomalap@amd.com> Tested-by: Somalapuram, Amaranath <asomalap@amd.com> Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/ae8e284d6c7e6bd0be259052bd4f42e07ce24641.1718192625.git.karolina.stolarek@intel.com
Diffstat (limited to 'drivers/gpu/drm/ttm/tests/ttm_mock_manager.c')
-rw-r--r--drivers/gpu/drm/ttm/tests/ttm_mock_manager.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/drivers/gpu/drm/ttm/tests/ttm_mock_manager.c b/drivers/gpu/drm/ttm/tests/ttm_mock_manager.c
index ad77816c13ca..7f34fecd3fef 100644
--- a/drivers/gpu/drm/ttm/tests/ttm_mock_manager.c
+++ b/drivers/gpu/drm/ttm/tests/ttm_mock_manager.c
@@ -153,6 +153,14 @@ static int ttm_bad_manager_alloc(struct ttm_resource_manager *man,
return -ENOSPC;
}
+static int ttm_busy_manager_alloc(struct ttm_resource_manager *man,
+ struct ttm_buffer_object *bo,
+ const struct ttm_place *place,
+ struct ttm_resource **res)
+{
+ return -EBUSY;
+}
+
static void ttm_bad_manager_free(struct ttm_resource_manager *man,
struct ttm_resource *res)
{
@@ -172,6 +180,12 @@ static const struct ttm_resource_manager_func ttm_bad_manager_funcs = {
.compatible = ttm_bad_manager_compatible
};
+static const struct ttm_resource_manager_func ttm_bad_busy_manager_funcs = {
+ .alloc = ttm_busy_manager_alloc,
+ .free = ttm_bad_manager_free,
+ .compatible = ttm_bad_manager_compatible
+};
+
int ttm_bad_manager_init(struct ttm_device *bdev, u32 mem_type, u32 size)
{
struct ttm_resource_manager *man;
@@ -190,7 +204,20 @@ int ttm_bad_manager_init(struct ttm_device *bdev, u32 mem_type, u32 size)
}
EXPORT_SYMBOL_GPL(ttm_bad_manager_init);
-void ttm_bad_manager_fini(struct ttm_device *bdev, u32 mem_type)
+int ttm_busy_manager_init(struct ttm_device *bdev, u32 mem_type, u32 size)
+{
+ struct ttm_resource_manager *man;
+
+ ttm_bad_manager_init(bdev, mem_type, size);
+ man = ttm_manager_type(bdev, mem_type);
+
+ man->func = &ttm_bad_busy_manager_funcs;
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(ttm_busy_manager_init);
+
+void ttm_bad_manager_fini(struct ttm_device *bdev, uint32_t mem_type)
{
struct ttm_resource_manager *man;