[PATCH 1/2] drm/amdgpu: add amdgpu.ttm_dma_allocation parameter

Christian König christian.koenig at amd.com
Thu Jan 25 08:49:22 UTC 2018


Am 25.01.2018 um 09:35 schrieb Chunming Zhou:
>
>
> On 2018年01月25日 16:29, Christian König wrote:
>> Am 25.01.2018 um 07:50 schrieb Chunming Zhou:
>>> it will be used to set ttm dma allocation path.
>>
>> NAK, disabling swiotlb on the kernel command line should have the 
>> same effect.
> The tricky is swiotlb is enabled by default, and there may be some 
> other drivers need it.
> We only need not to use it amdgpu driver, so making it be disabled by 
> default makes sense, right?

No, as Michel also wrote that is nothing a system administrator should 
decide about.

There are simply to many cases where this won't work as intended.

But as a start to improve the check you could take a look at 
adev->dev->iommu_group.

If that is set to something then IOMMU should be active for our device 
and we can skip the DMA coherent allocator.

Regards,
Christian.

>
> Regards,
> David Zhou
>>
>> If that doesn't work we really need to thing about how to improve the 
>> detection logic.
>>
>> When I have a free minute I will try to hack something together.
>>
>> Regards,
>> Christian.
>>
>>>
>>> Change-Id: I9fa936db751811779cea66598bba0b8cf4cfd869
>>> Signed-off-by: Chunming Zhou <david1.zhou at amd.com>
>>> ---
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu.h     | 1 +
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++++
>>>   2 files changed, 5 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h 
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>>> index 353186f3e58c..443bedb288e6 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>>> @@ -128,6 +128,7 @@ extern int amdgpu_job_hang_limit;
>>>   extern int amdgpu_lbpw;
>>>   extern int amdgpu_compute_multipipe;
>>>   extern int amdgpu_gpu_recovery;
>>> +extern int amdgpu_ttm_dma_allocation;
>>>     #ifdef CONFIG_DRM_AMDGPU_SI
>>>   extern int amdgpu_si_support;
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c 
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
>>> index d1a695864793..556135020c4d 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
>>> @@ -131,6 +131,7 @@ int amdgpu_job_hang_limit = 0;
>>>   int amdgpu_lbpw = -1;
>>>   int amdgpu_compute_multipipe = -1;
>>>   int amdgpu_gpu_recovery = -1; /* auto */
>>> +int amdgpu_ttm_dma_allocation = 0;
>>>     MODULE_PARM_DESC(vramlimit, "Restrict VRAM for testing, in 
>>> megabytes");
>>>   module_param_named(vramlimit, amdgpu_vram_limit, int, 0600);
>>> @@ -286,6 +287,9 @@ module_param_named(compute_multipipe, 
>>> amdgpu_compute_multipipe, int, 0444);
>>>   MODULE_PARM_DESC(gpu_recovery, "Enable GPU recovery mechanism, (1 
>>> = enable, 0 = disable, -1 = auto");
>>>   module_param_named(gpu_recovery, amdgpu_gpu_recovery, int, 0444);
>>>   +MODULE_PARM_DESC(ttm_dma_allocation, "Enable TTM dma allocation, 
>>> (1 = enable, 0 = disable");
>>> +module_param_named(amdgpu_ttm_dma_allocation, 
>>> amdgpu_ttm_dma_allocation, int, 0444);
>>> +
>>>   #ifdef CONFIG_DRM_AMDGPU_SI
>>>     #if defined(CONFIG_DRM_RADEON) || defined(CONFIG_DRM_RADEON_MODULE)
>>
>



More information about the amd-gfx mailing list