All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Assert that the request is indeed complete when signaled from irq
Date: Mon, 5 Mar 2018 12:25:21 +0000	[thread overview]
Message-ID: <87e89751-cff8-9742-8efb-8f04ce90ec0d@linux.intel.com> (raw)
In-Reply-To: <152024889840.32001.13226815395700996173@mail.alporthouse.com>


On 05/03/2018 11:21, Chris Wilson wrote:
> Quoting Tvrtko Ursulin (2018-03-05 11:12:45)
>>
>> On 05/03/2018 10:41, Chris Wilson wrote:
>>> After we call dma_fence_signal(), confirm that the request was indeed
>>> complete.
>>>
>>> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
>>> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>> ---
>>>    drivers/gpu/drm/i915/i915_irq.c | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>>> index ce16003ef048..633c18785c1e 100644
>>> --- a/drivers/gpu/drm/i915/i915_irq.c
>>> +++ b/drivers/gpu/drm/i915/i915_irq.c
>>> @@ -1123,6 +1123,7 @@ static void notify_ring(struct intel_engine_cs *engine)
>>>    
>>>        if (rq) {
>>>                dma_fence_signal(&rq->fence);
>>> +             GEM_BUG_ON(!i915_request_completed(rq));
>>>                i915_request_put(rq);
>>>        }
>>>    
>>>
>>
>> What's the motivation? There is a i915_seqno_passed check a few lines
> 
> The seqno check is on wait.seqno, this is to confirm it all ties
> together with the request and our preemption avoidance is solid. The
> motivation was the bug in the signaler along the same lines.
> 
>> above. So there would have to be a confusion in internal breadcrumbs
>> state for this to be possible. In which case I'd rather put the assert
>> in breadcrumbs code. For instance in intel_wait_check_request, asserting
>> that the seqno in wait matches the seqno in wait->request.
> 
> The entire point of that check is to say when they don't match so that
> we know when the request was unsubmitted during the wait.

Ok my suggesting wasn't really appropriate. I just disliked a bit open 
coding the assert. No smart and worthwhile suggestions to improve it. 
i915_request_signal came to mind to wrap the assert and dma_fence_signal 
but I dont see sufficient call sites.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2018-03-05 12:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-05 10:41 [PATCH] drm/i915: Assert that the request is indeed complete when signaled from irq Chris Wilson
2018-03-05 11:12 ` Tvrtko Ursulin
2018-03-05 11:21   ` Chris Wilson
2018-03-05 12:25     ` Tvrtko Ursulin [this message]
2018-03-07 12:59       ` Chris Wilson
2018-03-05 12:08 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-03-05 15:18 ` ✓ Fi.CI.IGT: " Patchwork

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=87e89751-cff8-9742-8efb-8f04ce90ec0d@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    /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.