1. 20 4月, 2010 1 次提交
  2. 11 2月, 2010 2 次提交
  3. 28 1月, 2010 1 次提交
    • C
      drm/i915: Selectively enable self-reclaim · 4bdadb97
      Chris Wilson 提交于
      Having missed the ENOMEM return via i915_gem_fault(), there are probably
      other paths that I also missed. By not enabling NORETRY by default these
      paths can run the shrinker and take memory from the system (but not from
      our own inactive lists because our shrinker can not run whilst we hold
      the struct mutex) and this may allow the system to survive a little longer
      whilst our drivers consume all available memory.
      
      References:
        OOM killer unexpectedly called with kernel 2.6.32
        http://bugzilla.kernel.org/show_bug.cgi?id=14933
      
      v2: Pass gfp into page mapping.
      v3: Use new read_cache_page_gfp() instead of open-coding.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Eric Anholt <eric@anholt.net>
      Cc: stable@kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4bdadb97
  4. 24 11月, 2009 1 次提交
  5. 18 9月, 2009 1 次提交
    • C
      drm/i915: Improve behaviour under memory pressure · 07f73f69
      Chris Wilson 提交于
      Due to the necessity of having to take the struct_mutex, the i915
      shrinker can not free the inactive lists if we fail to allocate memory
      whilst processing a batch buffer, triggering an OOM and an ENOMEM that
      is reported back to userspace. In order to fare better under such
      circumstances we need to manually retry a failed allocation after
      evicting inactive buffers.
      
      To do so involves 3 steps:
      1. Marking the backing shm pages as NORETRY.
      2. Updating the get_pages() callers to evict something on failure and then
         retry.
      3. Revamping the evict something logic to be smarter about the required
         buffer size and prefer to use volatile or clean inactive pages.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      07f73f69
  6. 27 8月, 2009 1 次提交
  7. 15 7月, 2009 1 次提交
  8. 19 6月, 2009 1 次提交
  9. 11 6月, 2009 1 次提交
  10. 03 4月, 2009 1 次提交
  11. 13 3月, 2009 1 次提交
    • B
      drm: Split drm_map and drm_local_map · f77d390c
      Benjamin Herrenschmidt 提交于
      Once upon a time, the DRM made the distinction between the drm_map
      data structure exchanged with user space and the drm_local_map used
      in the kernel.
      
      For some reasons, while the BSD port still has that "feature", the
      linux part abused drm_map for kernel internal usage as the local
      map only existed as a typedef of the struct drm_map.
      
      This patch fixes it by declaring struct drm_local_map separately
      (though its content is currently identical to the userspace variant),
      and changing the kernel code to only use that, except when it's a
      user<->kernel interface (ie. ioctl).
      
      This allows subsequent changes to the in-kernel format
      
      I've also replaced the use of drm_local_map_t with struct drm_local_map
      in a couple of places. Mostly by accident but they are the same (the
      former is a typedef of the later) and I have some remote plans and
      half finished patch to completely kill the drm_local_map_t typedef
      so I left those bits in.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      f77d390c
  12. 20 2月, 2009 4 次提交
  13. 01 2月, 2009 1 次提交
    • L
      Stop playing silly games with the VM_ACCOUNT flag · fc8744ad
      Linus Torvalds 提交于
      The mmap_region() code would temporarily set the VM_ACCOUNT flag for
      anonymous shared mappings just to inform shmem_zero_setup() that it
      should enable accounting for the resulting shm object.  It would then
      clear the flag after calling ->mmap (for the /dev/zero case) or doing
      shmem_zero_setup() (for the MAP_ANON case).
      
      This just resulted in vma merge issues, but also made for just
      unnecessary confusion.  Use the already-existing VM_NORESERVE flag for
      this instead, and let shmem_{zero|file}_setup() just figure it out from
      that.
      
      This also happens to make it obvious that the new DRI2 GEM layer uses a
      non-reserving backing store for its object allocation - which is quite
      possibly not intentional.  But since I didn't want to change semantics
      in this patch, I left it alone, and just updated the caller to use the
      new flag semantics.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fc8744ad
  14. 29 12月, 2008 2 次提交
  15. 18 10月, 2008 2 次提交