1. 15 Jan, 2019 1 commit
    • Chris Wilson's avatar
      drm/i915: Prevent concurrent GGTT update and use on Braswell (again) · 8cd99918
      Chris Wilson authored
      On Braswell, under heavy stress, if we update the GGTT while
      simultaneously accessing another region inside the GTT, we are returned
      the wrong values. To prevent this we stop the machine to update the GGTT
      entries so that no memory traffic can occur at the same time.
      
      This was first spotted in
      
      commit 5bab6f60
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Fri Oct 23 18:43:32 2015 +0100
      
          drm/i915: Serialise updates to GGTT with access through GGTT on Braswell
      
      but removed again in forlorn hope with
      
      commit 4509276e
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Mon Feb 20 12:47:18 2017 +0000
      
          drm/i915: Remove Braswell GGTT update w/a
      
      However, gem_concurrent_blit is once again only stable with the patch
      applied and CI is detecting the odd failure in forked gem_mmap_gtt tests
      (which smell like the same issue). Fwiw, a wide variety of CPU memory
      barriers (around GGTT flushing, fence updates, PTE updates) and GPU
      flushes/invalidates (between requests, after PTE updates) were tried as
      part of the investigation to find an alternate cause, nothing comes
      close to serialised GGTT updates.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105591
      Testcase: igt/gem_concurrent_blit
      Testcase: igt/gem_mmap_gtt/*forked*
      References: 5bab6f60 ("drm/i915: Serialise updates to GGTT with access through GGTT on Braswell")
      References: 4509276e ("drm/i915: Remove Braswell GGTT update w/a")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190114211729.30352-1-chris@chris-wilson.co.uk
      8cd99918
  2. 14 Jan, 2019 23 commits
  3. 10 Jan, 2019 7 commits
  4. 09 Jan, 2019 6 commits
  5. 08 Jan, 2019 3 commits