dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Alex Deucher <alexdeucher@gmail.com>
To: Ilija Hadzic <ihadzic@research.bell-labs.com>
Cc: Alex Deucher <alexander.deucher@amd.com>,
	dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 1/3] drm/radeon: Disable dma rings for bo moves on r6xx
Date: Thu, 11 Jul 2013 16:05:57 -0400	[thread overview]
Message-ID: <CADnq5_MkP+eFPtgFu7G=kMvYXstXsPqaafEF-+GnZVKC5HNSTQ@mail.gmail.com> (raw)
In-Reply-To: <Pine.GSO.4.64.1307111446300.25016@umail>

On Thu, Jul 11, 2013 at 3:59 PM, Ilija Hadzic
<ihadzic@research.bell-labs.com> wrote:
>
> Alex,
>
> Can you please share some details about the nature or symptom of the
> "instability". One problem that I have been seeing on my end is that when I
> use the DMA ring intensively (by intensively I mean, calling the copy
> function every frame), combined with some 3D rendering that causes a lot of
> cs_ioctl calls, that I can provoke a corruption of the olist field in
> radeon_sa_bo structure, consequently causing an oops in
> radeon_sa_bo_try_free(). I have also found that I can suppress the problem
> if I add some padding fields at the beginnig of the radeon_sa_bo structure
> (essentially moving the olist field down).
>
> So I speculate that the use of DMA somehow results in corrupting that
> structure, but I have not yet done enough experiments to prove or disprove
> that theory (so I have not spoke up yet). Also my kernel is full of my own
> internal hacks, and I have not yet taken the time to reproduce the problem
> with the "stock" kernel. However, after seeing your patch series, I am
> wondering if the instability you are referring to may be of the same or
> similar nature.

Basically using the DMA engine on r6xx seems to lead to hangs on
certain chips when the bo copy callback gets triggered a lot (e.g., a
web page with lots of images, etc.).  Switching back to the 3D engine
fixes the issue.  R6xx was the first asic family with the async dma
engines, so there are likely some hw bugs at play.  Unfortunately, the
hw guys haven't looked at 6xx in probably 8 years, so I don't hold out
much chance of getting to the root of the problem at this point.

Alex

>
> thanks,
>
> Ilija
>
>
>
> On Thu, 11 Jul 2013, alexdeucher@gmail.com wrote:
>
>> From: Alex Deucher <alexander.deucher@amd.com>
>>
>> They still seem to cause instability on some r6xx parts.
>> As a follow up, we can switch to using CP DMA for bo
>> moves on r6xx as a lighter weight alternative to using
>> the 3D engine.
>>
>> A version of this patch should also go to stable kernels.
>>
>> Tested-by: J.N. <golden.fleeced@gmail.com>
>> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
>> ---
>> drivers/gpu/drm/radeon/radeon_asic.c |   12 ++++++------
>> 1 files changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_asic.c
>> b/drivers/gpu/drm/radeon/radeon_asic.c
>> index 0970774..ea5c52b 100644
>> --- a/drivers/gpu/drm/radeon/radeon_asic.c
>> +++ b/drivers/gpu/drm/radeon/radeon_asic.c
>> @@ -1026,8 +1026,8 @@ static struct radeon_asic r600_asic = {
>>                 .blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
>>                 .dma = &r600_copy_dma,
>>                 .dma_ring_index = R600_RING_TYPE_DMA_INDEX,
>> -               .copy = &r600_copy_dma,
>> -               .copy_ring_index = R600_RING_TYPE_DMA_INDEX,
>> +               .copy = &r600_copy_blit,
>> +               .copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
>>         },
>>         .surface = {
>>                 .set_reg = r600_set_surface_reg,
>> @@ -1119,8 +1119,8 @@ static struct radeon_asic rv6xx_asic = {
>>                 .blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
>>                 .dma = &r600_copy_dma,
>>                 .dma_ring_index = R600_RING_TYPE_DMA_INDEX,
>> -               .copy = &r600_copy_dma,
>> -               .copy_ring_index = R600_RING_TYPE_DMA_INDEX,
>> +               .copy = &r600_copy_blit,
>> +               .copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
>>         },
>>         .surface = {
>>                 .set_reg = r600_set_surface_reg,
>> @@ -1229,8 +1229,8 @@ static struct radeon_asic rs780_asic = {
>>                 .blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
>>                 .dma = &r600_copy_dma,
>>                 .dma_ring_index = R600_RING_TYPE_DMA_INDEX,
>> -               .copy = &r600_copy_dma,
>> -               .copy_ring_index = R600_RING_TYPE_DMA_INDEX,
>> +               .copy = &r600_copy_blit,
>> +               .copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
>>         },
>>         .surface = {
>>                 .set_reg = r600_set_surface_reg,
>> --
>> 1.7.7.5
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
>

  reply	other threads:[~2013-07-11 20:05 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-11 19:35 [PATCH 1/3] drm/radeon: Disable dma rings for bo moves on r6xx alexdeucher
2013-07-11 19:35 ` [PATCH 2/3] drm/radeon: implement bo copy callback using CP DMA (v2) alexdeucher
2013-07-18 12:29   ` Marek Olšák
2013-07-11 19:35 ` [PATCH 3/3] drm/radeon: use CP DMA on r6xx for bo moves alexdeucher
2013-07-11 19:59 ` [PATCH 1/3] drm/radeon: Disable dma rings for bo moves on r6xx Ilija Hadzic
2013-07-11 20:05   ` Alex Deucher [this message]
2013-07-12  6:53   ` Christian König
2013-07-12 14:23     ` Ilija Hadzic
2013-07-12  6:50 ` Christian König
2013-07-12 13:04   ` Alex Deucher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CADnq5_MkP+eFPtgFu7G=kMvYXstXsPqaafEF-+GnZVKC5HNSTQ@mail.gmail.com' \
    --to=alexdeucher@gmail.com \
    --cc=alexander.deucher@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=ihadzic@research.bell-labs.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).