linux/drivers/gpu/drm/ttm
Thomas Hellstrom 702adba224 drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock
The bo lock used only to protect the bo sync object members, and since it
is a per bo lock, fencing a buffer list will see a lot of locks and unlocks.
Replace it with a per-device lock that protects the sync object members on
*all* bos. Reading and setting these members will always be very quick, so
the risc of heavy lock contention is microscopic. Note that waiting for
sync objects will always take place outside of this lock.

The bo device fence lock will eventually be replaced with a seqlock /
rcu mechanism so we can determine that a bo is idle under a
rcu / read seqlock.

However this change will allow us to batch fencing and unreserving of
buffers with a minimal amount of locking.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jerome Glisse <j.glisse@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-11-22 13:25:18 +10:00
..
Makefile drm/ttm: restructure to allow driver to plug in alternate memory manager 2010-10-05 10:01:20 +10:00
ttm_agp_backend.c drm/ttm: restructure to allow driver to plug in alternate memory manager 2010-10-05 10:01:20 +10:00
ttm_bo_manager.c drm/ttm: Use private locks for the default bo range manager 2010-11-09 13:33:24 +10:00
ttm_bo_util.c drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock 2010-11-22 13:25:18 +10:00
ttm_bo_vm.c drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock 2010-11-22 13:25:18 +10:00
ttm_bo.c drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock 2010-11-22 13:25:18 +10:00
ttm_execbuf_util.c drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock 2010-11-22 13:25:18 +10:00
ttm_lock.c drm/ttm: Remove some leftover debug messages. 2010-05-07 09:20:56 +10:00
ttm_memory.c Merge branch 'drm-ttm-pool' into drm-core-next 2010-04-20 13:12:28 +10:00
ttm_module.c drm: move ttm global code to core drm 2010-08-04 09:46:06 +10:00
ttm_object.c
ttm_page_alloc.c drm: ttm sparse fixes. 2010-09-24 10:09:08 +10:00
ttm_tt.c drm/ttm: remove failed ttm binding error printout 2010-11-09 13:33:57 +10:00