All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <deathsimple@vodafone.de>
To: Jerome Glisse <j.glisse@gmail.com>
Cc: "Michel Dänzer" <michel@daenzer.net>, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 1/3] drm/radeon: move ring locking out of reset path
Date: Mon, 02 Jul 2012 17:58:33 +0200	[thread overview]
Message-ID: <4FF1C529.3030009@vodafone.de> (raw)
In-Reply-To: <CAH3drwYLNE3FAu9xus=3gvkWpm5jm_za8K4CXX7jCFtibc=7MA@mail.gmail.com>

On 02.07.2012 17:41, Jerome Glisse wrote:
> On Fri, Jun 29, 2012 at 12:15 PM, Michel Dänzer <michel@daenzer.net> wrote:
>> On Fre, 2012-06-29 at 17:18 +0200, Christian König wrote:
>>> On 29.06.2012 17:09, Michel Dänzer wrote:
>>>> On Fre, 2012-06-29 at 16:45 +0200, Christian König wrote:
>>>>> Hold the ring lock the whole time the reset is in progress,
>>>>> otherwise another process can submit new jobs.
>>>> Sounds good, but doesn't this create other paths (e.g. initialization,
>>>> resume) where the ring is being accessed without holding the lock? Isn't
>>>> that a problem?
>>> Thought about that also.
>>>
>>> For init I'm pretty sure that no application can submit commands before
>>> we are done, otherwise we are doomed anyway.
>>>
>>> For resume I'm not really sure, but I think that applications are
>>> resumed after the hardware driver had a chance of doing so.
>> I hope you're right... but if it's not too much trouble, it might be
>> better to be safe than sorry and take the lock for those paths as well.
>>
>>
> NAK this is the wrong way to solve the issue, we need a global lock on
> all path that can trigger gpu activities. Previously it was the cs
> mutex, but i haven't thought about it too much when it got removed. So
> to fix the situation i am sending a patch with rw semaphore.
So what I'm missing? What else can trigger GPU activity when not the rings?

I'm currently working on ring-partial resets and also resets where you 
only skip over a single faulty IB instead of flushing the whole ring. 
And my current idea for that to work is that we hold the ring lock while 
we do suspend, ring_save, asic_reset, resume and ring_restore.

Christian.

>
> Cheers,
> Jerome
>

  reply	other threads:[~2012-07-02 15:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-29 14:45 [PATCH 1/3] drm/radeon: move ring locking out of reset path Christian König
2012-06-29 14:45 ` [PATCH 2/3] drm/radeon: add error handling to fence_wait_empty_locked Christian König
2012-06-29 15:19   ` Michel Dänzer
2012-06-29 14:45 ` [PATCH 3/3] drm/radeon: add error handling to radeon_vm_unbind_locked Christian König
2012-06-29 15:13   ` Michel Dänzer
2012-06-29 15:09 ` [PATCH 1/3] drm/radeon: move ring locking out of reset path Michel Dänzer
2012-06-29 15:18   ` Christian König
2012-06-29 16:15     ` Michel Dänzer
2012-07-02 15:41       ` Jerome Glisse
2012-07-02 15:58         ` Christian König [this message]
2012-07-02 16:01           ` Jerome Glisse
2012-07-02 16:15           ` Jerome Glisse

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=4FF1C529.3030009@vodafone.de \
    --to=deathsimple@vodafone.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=j.glisse@gmail.com \
    --cc=michel@daenzer.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.