mirror of
https://github.com/torvalds/linux.git
synced 2026-04-22 16:53:59 -04:00
drm/ttm: Handle cgroup based eviction in TTM
cgroup resource allocation has to be handled in TTM, so -EAGAIN from cgroups can be converted into -ENOSPC, and the limitcg can be properly evicted in ttm code. When hitting a resource limit through -EAGAIN, the cgroup for which the limit is hit is also returned. This allows eviction to delete only from cgroups which are a subgroup of the current cgroup. The returned CSS is used to determine if eviction is valuable for a given resource, and allows TTM to only target specific resources to lower memory usage. Co-developed-by: Friedrich Vock <friedrich.vock@gmx.de> Signed-off-by: Friedrich Vock <friedrich.vock@gmx.de> Co-developed-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Maarten Lankhorst <dev@lankhorst.se> Acked-by: Tejun Heo <tj@kernel.org> Link: https://lore.kernel.org/r/20241204134410.1161769-4-dev@lankhorst.se Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
committed by
Maxime Ripard
parent
7b0af165e2
commit
2b624a2c18
@@ -542,7 +542,7 @@ static void ttm_bo_validate_no_placement_signaled(struct kunit *test)
|
||||
bo->ttm = old_tt;
|
||||
}
|
||||
|
||||
err = ttm_resource_alloc(bo, place, &bo->resource);
|
||||
err = ttm_resource_alloc(bo, place, &bo->resource, NULL);
|
||||
KUNIT_EXPECT_EQ(test, err, 0);
|
||||
KUNIT_ASSERT_EQ(test, man->usage, size);
|
||||
|
||||
@@ -603,7 +603,7 @@ static void ttm_bo_validate_no_placement_not_signaled(struct kunit *test)
|
||||
bo = ttm_bo_kunit_init(test, test->priv, size, NULL);
|
||||
bo->type = params->bo_type;
|
||||
|
||||
err = ttm_resource_alloc(bo, place, &bo->resource);
|
||||
err = ttm_resource_alloc(bo, place, &bo->resource, NULL);
|
||||
KUNIT_EXPECT_EQ(test, err, 0);
|
||||
|
||||
placement = kunit_kzalloc(test, sizeof(*placement), GFP_KERNEL);
|
||||
|
||||
Reference in New Issue
Block a user