1. 03 5月, 2012 13 次提交
  2. 18 4月, 2012 10 次提交
  3. 17 4月, 2012 2 次提交
  4. 16 4月, 2012 1 次提交
    • D
      drm/i915: don't pwrite tiled objects through the gtt · c07496fa
      Daniel Vetter 提交于
      ... we will botch up the bit17 swizzling. Furthermore tiled pwrite is
      a (now) unused slowpath, so no one really cares.
      
      This fixes the last swizzling issues I have with i-g-t on my bit17
      swizzling i915G. No regression, it's been broken since the dawn of
      gem, but it's nice for regression tracking when really _all_ i-g-t
      tests work.
      
      Actually this is not true, Chris Wilson noticed while reviewing this
      patch that the commit
      
      commit d9e86c0e
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Wed Nov 10 16:40:20 2010 +0000
      
          drm/i915: Pipelined fencing [infrastructure]
      
      contained a functional change that broke things.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c07496fa
  5. 13 4月, 2012 6 次提交
  6. 12 4月, 2012 1 次提交
    • D
      drm/i915: clear fencing tracking state when retiring requests · 15a13bbd
      Daniel Vetter 提交于
      This fixes a resume regression introduced in
      
      commit 7dd49065
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Wed Mar 21 10:48:18 2012 +0000
      
          drm/i915: Mark untiled BLT commands as fenced on gen2/3
      
      which fixed fencing tracking for untiled blt commands.
      
      A side effect of that patch was that now also untiled objects have a
      non-zero obj->last_fenced_seqno to track when a fence can be set up
      after a pipelined tiling change. Unfortunately this was only cleared
      by the fence setup and teardown code, resulting in tons of untiled but
      inactive objects with non-zero last_fenced_seqno.
      
      Now after resume we completely reset the seqno tracking, both on the
      driver side (by setting dev_priv->next_seqno = 1) and on the hw side
      (by allocating a new hws page, which contains the seqnos). Hilarity
      and indefinite waits ensued from the stale seqnos in
      obj->last_fenced_seqno from before the suspend.
      
      The fix is to properly clear the fencing tracking state like we
      already do for the normal gpu rendering while moving objects off the
      active list.
      Reported-and-tested-by: N"Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Jiri Slaby <jslaby@suse.cz>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      15a13bbd
  7. 10 4月, 2012 1 次提交
  8. 01 4月, 2012 2 次提交
  9. 29 3月, 2012 1 次提交
  10. 27 3月, 2012 3 次提交
    • D
      drm/i915: mark pwrite/pread slowpaths with unlikely · e7e58eb5
      Daniel Vetter 提交于
      Beside helping the compiler untangle this maze they double-up as
      documentation for which parts of the code aren't performance-critical
      but just around to keep old (but already dead-slow) userspace from
      breaking.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e7e58eb5
    • D
      drm/i915: fixup in-line clflushing on bit17 swizzled bos · 23c18c71
      Daniel Vetter 提交于
      The issue is that with inline clflushing the clflushing isn't properly
      swizzled. Fix this by
      - always clflushing entire 128 byte chunks and
      - unconditionally flush before writes when swizzling a given page.
        We could be clever and check whether we pwrite a partial 128 byte
        chunk instead of a partial cacheline, but I've figured that's not
        worth it.
      
      Now the usual approach is to fold this into the original patch series, but
      I've opted against this because
      - this fixes a corner case only very old userspace relies on and
      - I'd like to not invalidate all the testing the pwrite rewrite has gotten.
      
      This fixes the regression notice by tests/gem_tiled_partial_prite_pread
      from i-g-t. Unfortunately it doesn't fix the issues with partial pwrites to
      tiled buffers on bit17 swizzling machines. But that is also broken without
      the pwrite patches, so likely a different issue (or a problem with the
      testcase).
      
      v2: Simplify the patch by dropping the overly clever partial write
      logic for swizzled pages.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      23c18c71
    • D
      mm: extend prefault helpers to fault in more than PAGE_SIZE · f56f821f
      Daniel Vetter 提交于
      drm/i915 wants to read/write more than one page in its fastpath
      and hence needs to prefault more than PAGE_SIZE bytes.
      
      Add new functions in filemap.h to make that possible.
      
      Also kill a copy&pasted spurious space in both functions while at it.
      
      v2: As suggested by Andrew Morton, add a multipage parameter to both
      functions to avoid the additional branch for the pagemap.c hotpath.
      My gcc 4.6 here seems to dtrt and indeed reap these branches where not
      needed.
      
      v3: Becaus I couldn't find a way around adding a uaddr += PAGE_SIZE to
      the filemap.c hotpaths (that the compiler couldn't remove again),
      let's go with separate new functions for the multipage use-case.
      
      v4: Adjust comment to CodingStlye and fix spelling.
      Acked-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f56f821f