mirror of
https://github.com/torvalds/linux.git
synced 2026-05-04 06:22:40 -04:00
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
This commit is contained in:
committed by
Arunpravin Paneer Selvam
parent
8eda41dfc9
commit
5fe3943385
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user