<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [v4.10 snb] weird seqno/request tracking"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=99671#c34">Comment # 34</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [v4.10 snb] weird seqno/request tracking"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=99671">bug 99671</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>dmesg & error are just what I need. (If I need anything else, the goal is to
add it to the error state.)

Onto the next theory, a few more asserts:

diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c
b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 4ffa35f..5a7c140 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -44,6 +44,7 @@ static int __intel_ring_space(int head, int tail, int size)
        int space = head - tail;
        if (space <= 0)
                space += size;
+       GEM_BUG_ON(space <= I915_RING_FREE_SPACE);
        return space - I915_RING_FREE_SPACE;
 }

@@ -1682,6 +1683,8 @@ u32 *intel_ring_begin(struct drm_i915_gem_request *req,
int num_dwords)
                wait_bytes = total_bytes;
        }

+       GEM_BUG_ON(ring->space > __intel_ring_space(ring->head & HEAD_ADDR,
+                                                   ring->tail, ring->size));
        if (wait_bytes > ring->space) {
                int ret = wait_for_space(req, wait_bytes);
                if (unlikely(ret))
@@ -1698,6 +1701,7 @@ u32 *intel_ring_begin(struct drm_i915_gem_request *req,
int num_dwords)
                ring->space -= remain_actual;
        }

+       GEM_BUG_ON(bytes > ring->space);
        GEM_BUG_ON(ring->tail > ring->size - bytes);
        cs = ring->vaddr + ring->tail;
        ring->tail += bytes;</pre>
        </div>
      </p>


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

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