[PATCH v5 2/4] drm/amdgpu: Create helper to clear AMDGPU_GEM_CREATE_CPU_GTT_USWC
Michel Dänzer
michel at daenzer.net
Fri Jul 26 08:54:01 UTC 2019
On 2019-07-26 9:11 a.m., Christian König wrote:
> Am 25.07.19 um 16:24 schrieb Andrey Grodzovsky:
>> 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.
>>
>> v5: Fix typos.
>>
>> 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..8702062 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;
>> +#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");
>
> I don't think this message belongs here.
>
> [...]
>> @@ -466,33 +500,8 @@ static int amdgpu_bo_do_create(struct
>> [...]
>> + if (!amdgpu_bo_support_uswc(bo->flags))
>> bo->flags &= ~AMDGPU_GEM_CREATE_CPU_GTT_USWC;
>
> Rather here we should do "if (bo_flags & AMDGPU_GEM_CREATE_CPU_GTT_USWC
> && !amdgpu_bo_support_uswc())" and then clear the flag and also print
> the warning.
That would require duplicating the CONFIG_X86_PAT related logic here as
well, which is a bit ugly.
--
Earthling Michel Dänzer | https://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the amd-gfx
mailing list