<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - [CI][SHARDS]igt@kms_frontbuffer_tracking@psr-modesetfrombusy - dmesg-warn - GEM_BUG_ON(((tail) & ~((__typeof__(tail))((64)-1))) == ((ring->head) & ~((__typeof__(ring->head))((64)-1))) && tail < ring->head)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=112157">bug 112157</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - [CI][SHARDS]igt@kms_frontbuffer_tracking@psr-modesetfrombusy - dmesg-warn - GEM_BUG_ON(((tail) & ~((__typeof__(tail))((64)-1))) == ((ring->head) & ~((__typeof__(ring->head))((64)-1))) && tail < ring->head)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=112157#c4">Comment # 4</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - [CI][SHARDS]igt@kms_frontbuffer_tracking@psr-modesetfrombusy - dmesg-warn - GEM_BUG_ON(((tail) & ~((__typeof__(tail))((64)-1))) == ((ring->head) & ~((__typeof__(ring->head))((64)-1))) && tail < ring->head)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=112157">bug 112157</a>
              from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
        <pre><0>[ 2016.271448]   <idle>-0       0..s1 2012175800us : process_csb: rcs0
cs-irq head=0, tail=1
<0>[ 2016.271485]   <idle>-0       0..s1 2012175800us : process_csb: rcs0
csb[1]: status=0x00000882:0x00000060
<0>[ 2016.271524]   <idle>-0       0..s1 2012175801us : trace_ports: rcs0:
preempted { 3d30:32, 0:0 }
<0>[ 2016.271561] gem_exec-8517    1d..1 2012175801us :
__execlists_submission_tasklet: vcs1: queue_priority_hint:-2147483648,
submit:yes
<0>[ 2016.271601]   <idle>-0       0..s1 2012175801us : process_csb:
reset_active(rcs0): { rq=3d30:32 }
<0>[ 2016.271639] gem_exec-8517    1d..1 2012175802us : trace_ports: vcs1:
submit { a:428, 0:0 }
<0>[ 2016.271683] gem_exec-8517    1.... 2012175811us : __i915_request_commit:
vecs0 fence c:608
<0>[ 2016.271721]   <idle>-0       0..s1 2012175811us : trace_ports: rcs0:
promote { 4:9442!, 0:0 }
<0>[ 2016.271765]   <idle>-0       0d.s2 2012175813us : __i915_request_submit:
rcs0 fence 3d30:12, current 10
<0>[ 2016.271810]   <idle>-0       0d.s2 2012175820us : __i915_request_submit:
rcs0 fence 3d30:14, current 10
<0>[ 2016.271855]   <idle>-0       0d.s2 2012175825us : __i915_request_submit:
rcs0 fence 3d30:16, current 10
<0>[ 2016.271900] gem_exec-8517    1d..1 2012175825us : __i915_request_submit:
vecs0 fence c:608, current 606
<0>[ 2016.271944]   <idle>-0       0d.s2 2012175829us : __i915_request_submit:
rcs0 fence 3d30:18, current 10
<0>[ 2016.271985] gem_exec-8517    1d..1 2012175831us :
__execlists_submission_tasklet: vecs0: queue_priority_hint:-2147483648,
submit:yes
<0>[ 2016.272027] gem_exec-8517    1d..1 2012175832us : trace_ports: vecs0:
submit { c:608, 0:0 }
<0>[ 2016.272070]   <idle>-0       0d.s2 2012175833us : __i915_request_submit:
rcs0 fence 3d30:20, current 10
<0>[ 2016.272115]   <idle>-0       0d.s2 2012175837us : __i915_request_submit:
rcs0 fence 3d30:22, current 10
<0>[ 2016.272159]   <idle>-0       0d.s2 2012175840us : __i915_request_submit:
rcs0 fence 3d30:24, current 10
<0>[ 2016.272203]   <idle>-0       0d.s2 2012175843us : __i915_request_submit:
rcs0 fence 3d30:26, current 10
<0>[ 2016.272247]   <idle>-0       0d.s2 2012175846us : __i915_request_submit:
rcs0 fence 3d30:28, current 10
<0>[ 2016.272292]   <idle>-0       0d.s2 2012175850us : __i915_request_submit:
rcs0 fence 3d30:30, current 10
<0>[ 2016.272331] gem_exec-8517    1.... 2012176048us : __intel_context_do_pin:
rcs0 context:3d2e pin ring:{head:0000, tail:0000}
<0>[ 2016.272370] gem_exec-8517    1.... 2012176053us : intel_context_unpin:
rcs0 context:3d2e retire
<0>[ 2016.272409]   <idle>-0       0d.s2 2012176132us :
assert_ring_tail_valid.part.38: assert_ring_tail_valid:101 GEM_BUG_ON(((tail) &
~((__typeof__(tail))((64)-1))) == ((ring->head) &
~((__typeof__(ring->head))((64)-1))) && tail < ring->head)

So it's the rogue i915.hangcheck=0 leading to context cancellation.

I believe fixed by

commit a7f328fc789817a6a0e5c46411956810d5ee00ca
Author: Chris Wilson <<a href="mailto:chris@chris-wilson.co.uk">chris@chris-wilson.co.uk</a>>
Date:   Mon Oct 28 12:41:25 2019 +0000

    drm/i915/execlists: Simply walk back along request timeline on reset

    The request's timeline will only contain requests from this context, in
    order of execution. Therefore, we can simply look back along this
    timeline to find the currently executing request.

    If we do find that the current context has completed its last request,
    that does not imply that all requests are completed in the context, so
    only advance the ring->head up to the end of the known completions!

    Signed-off-by: Chris Wilson <<a href="mailto:chris@chris-wilson.co.uk">chris@chris-wilson.co.uk</a>>
    Reviewed-by: Joonas Lahtinen <<a href="mailto:joonas.lahtinen@linux.intel.com">joonas.lahtinen@linux.intel.com</a>>
    Link:
<a href="https://patchwork.freedesktop.org/patch/msgid/20191028124125.25176-1-chris@chris-wilson.co.uk">https://patchwork.freedesktop.org/patch/msgid/20191028124125.25176-1-chris@chris-wilson.co.uk</a>

The dangerous part is that this is precipitated by hangcheck=0 and so will not
appear again in CI... That suggests I need a better smoketest for persistence
opt-out.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>