aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2010-11-17 07:28:30 -0500
committerDave Airlie <airlied@redhat.com>2010-11-21 22:25:20 -0500
commit95762c2b34069bf4adb7929969f1f5f5fc8a38df (patch)
tree5c792e65dbdb4e7cb2c04b5a8058a929e8acc23d /include/drm
parent702adba22433c175e8429a47760f35ca16caf1cd (diff)
drm/ttm: Improved fencing of buffer object lists
Drastically reduce the number of spin lock / unlock operations by performing unreserving and fencing under global locks. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Jerome Glisse <j.glisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/ttm/ttm_bo_driver.h10
-rw-r--r--include/drm/ttm/ttm_execbuf_util.h2
2 files changed, 12 insertions, 0 deletions
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index ca8131e98300..cfb9ca4ec1c4 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -910,6 +910,16 @@ extern int ttm_bo_reserve_locked(struct ttm_buffer_object *bo,
910extern void ttm_bo_unreserve(struct ttm_buffer_object *bo); 910extern void ttm_bo_unreserve(struct ttm_buffer_object *bo);
911 911
912/** 912/**
913 * ttm_bo_unreserve_locked
914 *
915 * @bo: A pointer to a struct ttm_buffer_object.
916 *
917 * Unreserve a previous reservation of @bo.
918 * Needs to be called with struct ttm_bo_global::lru_lock held.
919 */
920extern void ttm_bo_unreserve_locked(struct ttm_buffer_object *bo);
921
922/**
913 * ttm_bo_wait_unreserved 923 * ttm_bo_wait_unreserved
914 * 924 *
915 * @bo: A pointer to a struct ttm_buffer_object. 925 * @bo: A pointer to a struct ttm_buffer_object.
diff --git a/include/drm/ttm/ttm_execbuf_util.h b/include/drm/ttm/ttm_execbuf_util.h
index fd09b8438977..535ab00407e0 100644
--- a/include/drm/ttm/ttm_execbuf_util.h
+++ b/include/drm/ttm/ttm_execbuf_util.h
@@ -44,6 +44,7 @@
44 * @reserved: Indicates whether @bo has been reserved for validation. 44 * @reserved: Indicates whether @bo has been reserved for validation.
45 * @removed: Indicates whether @bo has been removed from lru lists. 45 * @removed: Indicates whether @bo has been removed from lru lists.
46 * @put_count: Number of outstanding references on bo::list_kref. 46 * @put_count: Number of outstanding references on bo::list_kref.
47 * @old_sync_obj: Pointer to a sync object about to be unreferenced
47 */ 48 */
48 49
49struct ttm_validate_buffer { 50struct ttm_validate_buffer {
@@ -53,6 +54,7 @@ struct ttm_validate_buffer {
53 bool reserved; 54 bool reserved;
54 bool removed; 55 bool removed;
55 int put_count; 56 int put_count;
57 void *old_sync_obj;
56}; 58};
57 59
58/** 60/**