0
0
mirror of https://mirrors.bfsu.edu.cn/git/linux.git synced 2024-12-18 08:35:08 +08:00
linux/include/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
..
ttm_bo_api.h 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_driver.h 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.h drm/ttm: Add a bo list reserve fastpath (v2) 2010-11-22 13:24:40 +10:00
ttm_lock.h drm/ttm: Add ttm lock functionality. 2009-12-07 15:22:03 +10:00
ttm_memory.h drm/ttm: Fix build failure due to missing struct page 2009-12-04 09:11:16 +10:00
ttm_module.h drm: move ttm global code to core drm 2010-08-04 09:46:06 +10:00
ttm_object.h drm/ttm: Add more driver type enums 2009-12-15 08:38:18 +10:00
ttm_page_alloc.h drm/ttm: Allocate the page pool manager in the heap. 2010-07-07 12:14:11 +10:00
ttm_placement.h drm: Add the TTM GPU memory manager subsystem. 2009-06-15 09:37:57 +10:00