1. 14 Sep, 2018 2 commits
    • Chris Wilson's avatar
      drm/i915: Limit the backpressure for i915_request allocation · 11abf0c5
      Chris Wilson authored
      If we try and fail to allocate a i915_request, we apply some
      backpressure on the clients to throttle the memory allocations coming
      from i915.ko. Currently, we wait until completely idle, but this is far
      too heavy and leads to some situations where the only escape is to
      declare a client hung and reset the GPU. The intent is to only ratelimit
      the allocation requests and to allow ourselves to recycle requests and
      memory from any long queues built up by a client hog.
      
      Although the system memory is inherently a global resources, we don't
      want to overly penalize an unlucky client to pay the price of reaping a
      hog. To reduce the influence of one client on another, we can instead of
      waiting for the entire GPU to idle, impose a barrier on the local client.
      (One end goal for request allocation is for scalability to many
      concurrent allocators; simultaneous execbufs.)
      
      To prevent ourselves from getting caught out by long running requests
      (requests that may never finish without userspace intervention, whom we
      are blocking) we need to impose a finite timeout, ideally shorter than
      hangcheck. A long time ago Paul McKenney suggested that RCU users should
      ratelimit themselves using judicious use of cond_synchronize_rcu(). This
      gives us the opportunity to reduce our indefinite wait for the GPU to
      idle to a wait for the RCU grace period of the previous allocation along
      this timeline to expire, satisfying both the local and finite properties
      we desire for our ratelimiting.
      
      There are still a few global steps (reclaim not least amongst those!)
      when we exhaust the immediate slab pool, at least now the wait is itself
      decoupled from struct_mutex for our glorious highly parallel future!
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106680Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180914080017.30308-1-chris@chris-wilson.co.uk
      11abf0c5
    • Chris Wilson's avatar
      drm/i915: Mark up a couple of KMS debug messages as such · 43031788
      Chris Wilson authored
      For finding the panel fitter and PLL for a particular modeset is a part
      of that modeset and should be included with the reset of the
      DRM_DEBUG_KMS.
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180913131629.3978-1-chris@chris-wilson.co.uk
      43031788
  2. 13 Sep, 2018 9 commits
  3. 12 Sep, 2018 15 commits
  4. 11 Sep, 2018 5 commits
  5. 10 Sep, 2018 1 commit
  6. 07 Sep, 2018 1 commit
  7. 06 Sep, 2018 4 commits
  8. 05 Sep, 2018 3 commits