[PATCH v4 2/4] drm/amdgpu: Create helper to clear AMDGPU_GEM_CREATE_CPU_GTT_USWC

Grodzovsky, Andrey Andrey.Grodzovsky at amd.com
Wed Jul 24 15:48:39 UTC 2019


On 7/24/19 11:40 AM, Michel Dänzer wrote:
> On 2019-07-24 5:27 p.m., Andrey Grodzovsky wrote:
>> Move the logic to clear AMDGPU_GEM_CREATE_CPU_GTT_USWC in
>> amdgpu_bo_do_create into standalone helper so it can be reused
>> in other functions.
>>
>> v4:
>> Switch to return bool.
>>
>> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 61 +++++++++++++++++-------------
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.h |  2 +
>>   2 files changed, 37 insertions(+), 26 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>> index 989b7b5..dafdb68 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>> @@ -413,6 +413,40 @@ static bool amdgpu_bo_validate_size(struct amdgpu_device *adev,
>>   	return false;
>>   }
>>   
>> +bool amdgpu_bo_support_uswc(u64 bo_flags)
>> +{
>> +
>> +#ifdef CONFIG_X86_32
>> +	/* XXX: Write-combined CPU mappings of GTT seem broken on 32-bit
>> +	 * See https://bugs.freedesktop.org/show_bug.cgi?id=84627
>> +	 */
>> +	return false
> Missing semicolon.
>
>
>> +#elif defined(CONFIG_X86) && !defined(CONFIG_X86_PAT)
>> +	/* Don't try to enable write-combining when it can't work, or things
>> +	 * may be slow
>> +	 * See https://bugs.freedesktop.org/show_bug.cgi?id=88758
>> +	 */
>> +
>> +#ifndef CONFIG_COMPILE_TEST
>> +#warning Please enable CONFIG_MTRR and CONFIG_X86_PAT for better performance \
>> +	 thanks to write-combining
>> +#endif
>> +
>> +	if (bo_flags & AMDGPU_GEM_CREATE_CPU_GTT_USWC)
>> +		DRM_INFO_ONCE("Please enable CONFIG_MTRR and CONFIG_X86_PAT for "
>> +			      "better performance thanks to write-combining\n");
> The AMDGPU_GEM_CREATE_CPU_GTT_USWC check will always pass at some point
> due to patch 1, so passing in the flags is kind of pointless. Just do
> the DRM_INFO_ONCE unconditionally here.

AMDGPU_GEM_CREATE_CPU_GTT_USWC is set unconditionally only for FB console BOs in patch 1, for user mode BOs this
flag might not be set in user mode and so this warning shouldn't pop in this case.

Andrey


>
>
>> @@ -466,33 +500,8 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev,
>>   
>> [...]
>>   
>> +	if (amdgpu_bo_support_uswc(bo->flags))
>>   		bo->flags &= ~AMDGPU_GEM_CREATE_CPU_GTT_USWC;
> Missing "!".
>
>


More information about the amd-gfx mailing list