diff mbox

drm/radeon: Don't try to enable write-combining without PAT

Message ID 1423012791-5387-1-git-send-email-michel@daenzer.net (mailing list archive)
State New, archived
Headers show

Commit Message

Michel Dänzer Feb. 4, 2015, 1:19 a.m. UTC
From: Michel Dänzer <michel.daenzer@amd.com>

Doing so can cause things to become slow.

Print a warning at compile time and an informative message at runtime in
that case.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88758
Cc: stable@vger.kernel.org
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
---
 drivers/gpu/drm/radeon/radeon_object.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Christian König Feb. 4, 2015, 9:49 a.m. UTC | #1
Am 04.02.2015 um 02:19 schrieb Michel Dänzer:
> From: Michel Dänzer <michel.daenzer@amd.com>
>
> Doing so can cause things to become slow.
>
> Print a warning at compile time and an informative message at runtime in
> that case.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88758
> Cc: stable@vger.kernel.org
> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>

Interesting I wonder what the rational behind this is. I mean 
CONFIG_X86_PAT will obviously affect write combining, but why does it 
slow down things if we request something that the kernel isn't 
configured for?

Anyway, patch is Reviewed-by: Christian König <christian.koenig@amd.com>

Regards,
Christian.

> ---
>   drivers/gpu/drm/radeon/radeon_object.c | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
> index 7d68223..bd3df10 100644
> --- a/drivers/gpu/drm/radeon/radeon_object.c
> +++ b/drivers/gpu/drm/radeon/radeon_object.c
> @@ -238,6 +238,18 @@ int radeon_bo_create(struct radeon_device *rdev,
>   	 * See https://bugs.freedesktop.org/show_bug.cgi?id=84627
>   	 */
>   	bo->flags &= ~RADEON_GEM_GTT_WC;
> +#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
> +	 */
> +
> +#warning Please enable CONFIG_MTRR and CONFIG_X86_PAT for better performance \
> +	 thanks to write-combining
> +
> +	DRM_INFO_ONCE("Please enable CONFIG_MTRR and CONFIG_X86_PAT for "
> +		      "better performance thanks to write-combining\n");
> +	bo->flags &= ~RADEON_GEM_GTT_WC;
>   #endif
>   
>   	radeon_ttm_placement_from_domain(bo, domain);
Alex Deucher Feb. 4, 2015, 10:37 p.m. UTC | #2
On Wed, Feb 4, 2015 at 4:49 AM, Christian König <deathsimple@vodafone.de> wrote:
> Am 04.02.2015 um 02:19 schrieb Michel Dänzer:
>>
>> From: Michel Dänzer <michel.daenzer@amd.com>
>>
>> Doing so can cause things to become slow.
>>
>> Print a warning at compile time and an informative message at runtime in
>> that case.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88758
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
>
>
> Interesting I wonder what the rational behind this is. I mean CONFIG_X86_PAT
> will obviously affect write combining, but why does it slow down things if
> we request something that the kernel isn't configured for?
>
> Anyway, patch is Reviewed-by: Christian König <christian.koenig@amd.com>

Applied to my 3.20 tree.

Thanks!

Alex

>
> Regards,
> Christian.
>
>
>> ---
>>   drivers/gpu/drm/radeon/radeon_object.c | 12 ++++++++++++
>>   1 file changed, 12 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_object.c
>> b/drivers/gpu/drm/radeon/radeon_object.c
>> index 7d68223..bd3df10 100644
>> --- a/drivers/gpu/drm/radeon/radeon_object.c
>> +++ b/drivers/gpu/drm/radeon/radeon_object.c
>> @@ -238,6 +238,18 @@ int radeon_bo_create(struct radeon_device *rdev,
>>          * See https://bugs.freedesktop.org/show_bug.cgi?id=84627
>>          */
>>         bo->flags &= ~RADEON_GEM_GTT_WC;
>> +#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
>> +        */
>> +
>> +#warning Please enable CONFIG_MTRR and CONFIG_X86_PAT for better
>> performance \
>> +        thanks to write-combining
>> +
>> +       DRM_INFO_ONCE("Please enable CONFIG_MTRR and CONFIG_X86_PAT for "
>> +                     "better performance thanks to write-combining\n");
>> +       bo->flags &= ~RADEON_GEM_GTT_WC;
>>   #endif
>>         radeon_ttm_placement_from_domain(bo, domain);
>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
Michel Dänzer Feb. 5, 2015, 1:08 a.m. UTC | #3
On 04.02.2015 18:49, Christian König wrote:
> Am 04.02.2015 um 02:19 schrieb Michel Dänzer:
>> From: Michel Dänzer <michel.daenzer@amd.com>
>>
>> Doing so can cause things to become slow.
>>
>> Print a warning at compile time and an informative message at runtime in
>> that case.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88758
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
> 
> Interesting I wonder what the rational behind this is. I mean
> CONFIG_X86_PAT will obviously affect write combining, but why does it
> slow down things if we request something that the kernel isn't
> configured for?

Yeah, I'm not sure exactly what happens in that case, but I don't care
too much, since PAT is clearly desirable anyway.


> Anyway, patch is Reviewed-by: Christian König <christian.koenig@amd.com>

Thanks!
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
index 7d68223..bd3df10 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -238,6 +238,18 @@  int radeon_bo_create(struct radeon_device *rdev,
 	 * See https://bugs.freedesktop.org/show_bug.cgi?id=84627
 	 */
 	bo->flags &= ~RADEON_GEM_GTT_WC;
+#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
+	 */
+
+#warning Please enable CONFIG_MTRR and CONFIG_X86_PAT for better performance \
+	 thanks to write-combining
+
+	DRM_INFO_ONCE("Please enable CONFIG_MTRR and CONFIG_X86_PAT for "
+		      "better performance thanks to write-combining\n");
+	bo->flags &= ~RADEON_GEM_GTT_WC;
 #endif
 
 	radeon_ttm_placement_from_domain(bo, domain);