mirror of https://gitee.com/openkylin/linux.git
drm/ttm: Don't count pages in SG BOs against pages_limit
Pages in SG BOs were not allocated by TTM. So don't count them against TTM's pages limit. Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Christian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210414064804.29356-9-Felix.Kuehling@amd.com
This commit is contained in:
parent
603dc7ed91
commit
2b173d7fc2
|
@ -317,9 +317,12 @@ int ttm_tt_populate(struct ttm_device *bdev,
|
|||
if (ttm_tt_is_populated(ttm))
|
||||
return 0;
|
||||
|
||||
if (!(ttm->page_flags & TTM_PAGE_FLAG_SG)) {
|
||||
atomic_long_add(ttm->num_pages, &ttm_pages_allocated);
|
||||
if (bdev->pool.use_dma32)
|
||||
atomic_long_add(ttm->num_pages, &ttm_dma32_pages_allocated);
|
||||
atomic_long_add(ttm->num_pages,
|
||||
&ttm_dma32_pages_allocated);
|
||||
}
|
||||
|
||||
while (atomic_long_read(&ttm_pages_allocated) > ttm_pages_limit ||
|
||||
atomic_long_read(&ttm_dma32_pages_allocated) >
|
||||
|
@ -350,9 +353,12 @@ int ttm_tt_populate(struct ttm_device *bdev,
|
|||
return 0;
|
||||
|
||||
error:
|
||||
if (!(ttm->page_flags & TTM_PAGE_FLAG_SG)) {
|
||||
atomic_long_sub(ttm->num_pages, &ttm_pages_allocated);
|
||||
if (bdev->pool.use_dma32)
|
||||
atomic_long_sub(ttm->num_pages, &ttm_dma32_pages_allocated);
|
||||
atomic_long_sub(ttm->num_pages,
|
||||
&ttm_dma32_pages_allocated);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(ttm_tt_populate);
|
||||
|
@ -382,9 +388,12 @@ void ttm_tt_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm)
|
|||
else
|
||||
ttm_pool_free(&bdev->pool, ttm);
|
||||
|
||||
if (!(ttm->page_flags & TTM_PAGE_FLAG_SG)) {
|
||||
atomic_long_sub(ttm->num_pages, &ttm_pages_allocated);
|
||||
if (bdev->pool.use_dma32)
|
||||
atomic_long_sub(ttm->num_pages, &ttm_dma32_pages_allocated);
|
||||
atomic_long_sub(ttm->num_pages,
|
||||
&ttm_dma32_pages_allocated);
|
||||
}
|
||||
|
||||
ttm->page_flags &= ~TTM_PAGE_FLAG_PRIV_POPULATED;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue