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@xxxxxxx> >> --- >> 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 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx