alistair23-linux/include/drm
Daniel Vetter 709ea97145 drm: implement helper functions for scanning lru list
These helper functions can be used to efficiently scan lru list
for eviction. Eviction becomes a three stage process:
1. Scanning through the lru list until a suitable hole has been found.
2. Scan backwards to restore drm_mm consistency and find out which
   objects fall into the hole.
3. Evict the objects that fall into the hole.

These helper functions don't allocate any memory (at the price of
not allowing any other concurrent operations). Hence this can also be
used for ttm (which does lru scanning under a spinlock).

Evicting objects in this fashion should be more fair than the current
approach by i915 (scan the lru for a object large enough to contain
the new object). It's also more efficient than the current approach used
by ttm (uncoditionally evict objects from the lru until there's enough
free space).

Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Thomas Hellstrom <thellstrom@vmwgfx.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-07-07 12:29:51 +10:00
..
i2c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
ttm Merge branch 'drm-for-2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-05-21 11:14:52 -07:00
drm.h Merge remote branch 'anholt/drm-intel-next' into drm-linus 2009-12-08 14:03:47 +10:00
drm_buffer.h drm: Add generic multipart buffer. 2010-02-23 09:46:20 +10:00
drm_cache.h drm/ttm: consolidate cache flushing code in one place. 2009-08-27 09:53:47 +10:00
drm_core.h
drm_crtc.h drm/fbdev: fix cloning on fbcon 2010-05-18 17:40:22 +10:00
drm_crtc_helper.h drm/kms: disable/enable poll around switcheroo on/off 2010-06-01 10:36:02 +10:00
drm_dp_helper.h drm/radeon/kms: add support for DP modesetting 2009-12-08 10:22:44 +10:00
drm_edid.h drm_edid: There should be 6 Standard Timings 2010-05-18 15:56:14 +10:00
drm_encoder_slave.h drm/kms: no need to return void value (encoder) 2009-08-19 16:06:49 +10:00
drm_fb_helper.h drm/fbdev: rework output polling to be back in the core. (v4) 2010-05-18 17:40:11 +10:00
drm_fixed.h drm: move radeon_fixed.h to shared drm_fixed.h header 2010-05-18 18:21:33 +10:00
drm_hashtab.h drm: include kernel list header file in hashtab header 2009-06-12 15:56:34 +10:00
drm_mem_util.h drm/ttm: use drm calloc large and free large 2010-03-15 10:31:43 +10:00
drm_memory.h includecheck fix: include/drm, drm_memory.h 2009-09-20 16:02:58 +05:30
drm_mm.h drm: implement helper functions for scanning lru list 2010-07-07 12:29:51 +10:00
drm_mode.h drm/kms: Remove incorrect comment in struct drm_mode_modeinfo 2010-02-01 11:26:39 +10:00
drm_os_linux.h drm/i915: add i915_lp_ring_sync helper 2009-11-05 14:47:07 -08:00
drm_pciids.h drm/radeon/kms: add FireMV 2400 PCI ID. 2010-04-19 18:53:10 +10:00
drm_sarea.h
drm_sman.h
drm_sysfs.h drm: Enable drm drivers to add drm sysfs devices. 2009-08-19 16:08:51 +10:00
drmP.h drm: free core gem object from driver callbacks 2010-04-20 13:19:33 +10:00
i810_drm.h
i830_drm.h
i915_drm.h drm/i915: add HAS_BSD check to i915_getparam 2010-06-01 11:21:09 -07:00
Kbuild Merge remote branch 'korg/drm-vmware-staging' into drm-core-next 2009-12-18 09:53:50 +10:00
mga_drm.h drm: Add compatibility #ifdefs for *BSD 2009-12-04 08:59:28 +10:00
nouveau_drm.h drm/nouveau: Add getparam for current PTIMER time. 2010-05-28 16:06:21 +10:00
r128_drm.h
radeon_drm.h drm/radeon/kms/evergreen: set accel_enabled 2010-06-08 09:34:42 +10:00
savage_drm.h
sis_drm.h
via_drm.h drm: Add compatibility #ifdefs for *BSD 2009-12-04 08:59:28 +10:00
vmwgfx_drm.h drm/vmwgfx: Allow userspace to change default layout. Bump minor. 2010-06-03 13:13:36 +10:00