1. 07 10月, 2015 4 次提交
    • C
      drm/i915: During shrink_all we only need to idle the GPU · c9c0f5ea
      Chris Wilson 提交于
      We can forgo an evict-everything here as the shrinker operation itself
      will unbind any vma as required. If we explicitly idle the GPU through a
      switch to the default context, we not only create a request in an
      illegal context (e.g. whilst shrinking during execbuf with a request
      already allocated), but switching to the default context will not free
      up the memory backing the active contexts - unless in the unlikely
      situation that context had already been closed (and just kept arrive by
      being the current context). The saving is near zero and the danger real.
      
      To compensate for the loss of the forced retire, add a couple of
      retire-requests to i915_gem_shirnk() - this should help free up any
      transitive cache from the requests.
      
      Note that the second retire_requests is for the benefit of the
      hand-rolled execlist ctx active tracking: We need to manually kick
      requests to get those unpinned again. Once that's fixed we can try to
      remove this again.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      [danvet: Add summary of why we need a pile of retire_requests.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c9c0f5ea
    • C
      drm/i915: Add a tracepoint for the shrinker · 3abafa53
      Chris Wilson 提交于
      Often it is very useful to know why we suddenly purge vast tracts of
      memory and surprisingly up until now we didn't even have a tracepoint
      for when we shrink our memory.
      
      Note that there are slab_start/end tracepoints already, but those
      don't cover the internal recursion when we directly call into our
      shrinker code. Hence a separate tracepoint seems justified. Also note
      that we don't really need a separate tracepoint for the actual amount
      of pages freed since we already have an unbind tracpoint for that.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      [danvet: Add a note that there's also slab_start/end and why they're
      insufficient.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3abafa53
    • C
      drm/i915: shrinker_control->nr_to_scan is now unsigned long · 14387540
      Chris Wilson 提交于
      As the shrinker_control now passes us unsigned long targets, update our
      shrinker functions to match.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      14387540
    • D
      drm/i915: Fix kerneldoc for i915_gem_shrink_all · 1f2449cd
      Daniel Vetter 提交于
      I've botched this, so let's fix it.
      
      Botched in
      
      commit eb0b44ad
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Wed Mar 18 14:47:59 2015 +0100
      
          drm/i915: kerneldoc for i915_gem_shrinker.c
      
      v2: Be a good citizen^Wmaintainer and add the proper commit citation.
      Noticed by Jani.
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      1f2449cd
  2. 10 4月, 2015 1 次提交
  3. 20 3月, 2015 2 次提交