[PATCH 2/2] drm/amdgpu: disable ttm dma allocation path by kernel parameter

Chunming Zhou david1.zhou at amd.com
Thu Jan 25 06:50:41 UTC 2018


dma allocation is slower than ttm pool path, which is only needed when
system memory iomapping is outside of GPU pci access address space.

In most case, ttm pool path can satisfy the requirement. If in some special case
that needs to re-enable dma allocation, we can set amdgpu.ttm_dma_allocation kernel
parameter in grub to enable it.

Change-Id: Idd53acdd157487e784d1166886f018361b10ad67
Signed-off-by: Chunming Zhou <david1.zhou at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index d32f48259c40..75227e372821 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1018,7 +1018,7 @@ static int amdgpu_ttm_tt_populate(struct ttm_tt *ttm,
 	}
 
 #ifdef CONFIG_SWIOTLB
-	if (swiotlb_nr_tbl()) {
+	if (amdgpu_ttm_dma_allocation && swiotlb_nr_tbl()) {
 		return ttm_dma_populate(&gtt->ttm, adev->dev, ctx);
 	}
 #endif
@@ -1045,7 +1045,7 @@ static void amdgpu_ttm_tt_unpopulate(struct ttm_tt *ttm)
 	adev = amdgpu_ttm_adev(ttm->bdev);
 
 #ifdef CONFIG_SWIOTLB
-	if (swiotlb_nr_tbl()) {
+	if (amdgpu_ttm_dma_allocation && swiotlb_nr_tbl()) {
 		ttm_dma_unpopulate(&gtt->ttm, adev->dev);
 		return;
 	}
@@ -2014,7 +2014,7 @@ static int amdgpu_ttm_debugfs_init(struct amdgpu_device *adev)
 	count = ARRAY_SIZE(amdgpu_ttm_debugfs_list);
 
 #ifdef CONFIG_SWIOTLB
-	if (!swiotlb_nr_tbl())
+	if (!amdgpu_ttm_dma_allocation || !swiotlb_nr_tbl())
 		--count;
 #endif
 
-- 
2.14.1



More information about the amd-gfx mailing list