drm/ttm: remove cpu_writers related code
Subsystems (3)
PATCH RESEND 1/1 drm/ttm: remove cpu_writers related code
Nobody uses it, so might as well simplify the code some.
Signed-off-by Maarten Lankhorst <[email protected]>
Reviewed-by Jerome Glisse <[email protected]>
--- drivers/gpu/drm/ttm/ttm_bo.c | 41 -------------------------------- drivers/gpu/drm/ttm/ttm_bo_util.c | 1 - drivers/gpu/drm/ttm/ttm_execbuf_util.c | 9 ------- include/drm/ttm/ttm_bo_api.h | 33 +------------------------- include/drm/ttm/ttm_bo_driver.h | 14 ----------- 5 files changed, 1 insertion(+), 97 deletions(-)
drivers/gpu/drm/ttm/ttm_bo.c +0 -41
@@ -141,7 +141,6 @@ static void ttm_bo_release_list(struct kref *list_kref)BUG_ON (atomic_read (&bo->list_kref.refcount));BUG_ON (atomic_read (&bo->kref.refcount)); -BUG_ON (atomic_read (&bo->cpu_writers));BUG_ON (bo->sync_obj !=NULL );BUG_ON (bo->mem.mm_node !=NULL );BUG_ON (!list_empty (&bo->lru));
@@ -1050,16 +1049,6 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo, }EXPORT_SYMBOL (ttm_bo_mem_space); -int ttm_bo_wait_cpu (struct ttm_buffer_object *bo,bool no_wait) -{ -if ((atomic_read (&bo->cpu_writers) >0 ) && no_wait) -return -EBUSY ; - -return wait_event_interruptible (bo->event_queue, -atomic_read (&bo->cpu_writers) ==0 ); -} -EXPORT_SYMBOL (ttm_bo_wait_cpu); - int ttm_bo_move_buffer(struct ttm_buffer_object *bo, struct ttm_placement *placement, bool interruptible, bool no_wait_reserve,
@@ -1211,7 +1200,6 @@ int ttm_bo_init(struct ttm_bo_device *bdev,kref_init (&bo->kref);kref_init (&bo->list_kref); -atomic_set (&bo->cpu_writers,0 );atomic_set (&bo->reserved,1 );init_waitqueue_head (&bo->event_queue);INIT_LIST_HEAD (&bo->lru);
@@ -1769,35 +1757,6 @@ int ttm_bo_wait(struct ttm_buffer_object *bo, }EXPORT_SYMBOL (ttm_bo_wait); -int ttm_bo_synccpu_write_grab (struct ttm_buffer_object *bo,bool no_wait) -{ -struct ttm_bo_device *bdev = bo->bdev; -int ret =0 ; - -/* -* Using ttm_bo_reserve makes sure the lru lists are updated. -*/ - - ret =ttm_bo_reserve (bo, true, no_wait, false,0 ); -if (unlikely (ret !=0 )) -return ret; -spin_lock (&bdev->fence_lock); - ret =ttm_bo_wait (bo, false, true, no_wait); -spin_unlock (&bdev->fence_lock); -if (likely (ret ==0 )) -atomic_inc (&bo->cpu_writers); -ttm_bo_unreserve (bo); -return ret; -} -EXPORT_SYMBOL (ttm_bo_synccpu_write_grab); - -void ttm_bo_synccpu_write_release (struct ttm_buffer_object *bo) -{ -if (atomic_dec_and_test (&bo->cpu_writers)) -wake_up_all (&bo->event_queue); -} -EXPORT_SYMBOL (ttm_bo_synccpu_write_release); -/** * A buffer object shrink method that tries to swap out the first * buffer object on the bo_global::swap_lru list.
drivers/gpu/drm/ttm/ttm_bo_util.c +0 -1
@@ -439,7 +439,6 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,INIT_LIST_HEAD (&fbo->swap);INIT_LIST_HEAD (&fbo->io_reserve_lru); fbo->vm_node =NULL ; -atomic_set (&fbo->cpu_writers,0 ); fbo->sync_obj = driver->sync_obj_ref (bo->sync_obj);kref_init (&fbo->list_kref);
drivers/gpu/drm/ttm/ttm_execbuf_util.c +0 -9
@@ -181,15 +181,6 @@ retry_this_bo: } entry->reserved = true; -if (unlikely (atomic_read (&bo->cpu_writers) >0 )) { -ttm_eu_backoff_reservation_locked (list); -spin_unlock (&glob->lru_lock); -ttm_eu_list_ref_sub (list); - ret =ttm_bo_wait_cpu (bo, false); -if (ret) -return ret; - goto retry; - } }ttm_eu_del_from_lru_locked (list);
include/drm/ttm/ttm_bo_api.h +1 -32
@@ -225,12 +225,6 @@ struct ttm_buffer_object {bool evicted;/** -* Members protected by the bo::reserved lock only when written to. -*/ - -atomic_t cpu_writers; - -/** * Members protected by the bdev::lru_lock. */
@@ -423,31 +417,6 @@ extern void ttm_bo_unlock_delayed_workqueue(struct ttm_bo_device *bdev, int resched);/** -* ttm_bo_synccpu_write_grab -* -* @bo: The buffer object: -* @no_wait: Return immediately if buffer is busy. -* -* Synchronizes a buffer object for CPU RW access. This means -* blocking command submission that affects the buffer and -* waiting for buffer idle. This lock is recursive. -* Returns -* -EBUSY if the buffer is busy and no_wait is true. -* -ERESTARTSYS if interrupted by a signal. -*/ -extern int -ttm_bo_synccpu_write_grab (struct ttm_buffer_object *bo,bool no_wait); - -/** -* ttm_bo_synccpu_write_release: -* -* @bo : The buffer object. -* -* Releases a synccpu lock. -*/ -extern void ttm_bo_synccpu_write_release (struct ttm_buffer_object *bo); - -/** * ttm_bo_acc_size * * @bdev: Pointer to a ttm_bo_device struct.
@@ -513,7 +482,7 @@ extern int ttm_bo_init(struct ttm_bo_device *bdev, void (*destroy) (struct ttm_buffer_object *));/** -* ttm_bo_synccpu_object_init +* ttm_bo_create * * @bdev: Pointer to a ttm_bo_device struct. * @bo: Pointer to a ttm_buffer_object to be initialized.
include/drm/ttm/ttm_bo_driver.h +0 -14
@@ -729,20 +729,6 @@ extern void ttm_bo_mem_put(struct ttm_buffer_object *bo,extern void ttm_bo_mem_put_locked (struct ttm_buffer_object *bo,struct ttm_mem_reg *mem); -/** -* ttm_bo_wait_for_cpu -* -* @bo: Pointer to a struct ttm_buffer_object. -* @no_wait: Don't sleep while waiting. -* -* Wait until a buffer object is no longer sync'ed for CPU access. -* Returns: -* -EBUSY: Buffer object was sync'ed for CPU access. (only if no_wait == 1). -* -ERESTARTSYS: An interruptible sleep was interrupted by a signal. -*/ - -extern int ttm_bo_wait_cpu (struct ttm_buffer_object *bo,bool no_wait); -extern void ttm_bo_global_release (struct drm_global_reference *ref);extern int ttm_bo_global_init (struct drm_global_reference *ref);
Acked-by Thomas Hellstrom <[email protected]>
Quoted 205 lines · Maarten Lankhorst
Nobody uses it, so might as well simplify the code some.
Signed-off-by Maarten Lankhorst <[email protected]>Reviewed-by Jerome Glisse <[email protected]>--- drivers/gpu/drm/ttm/ttm_bo.c | 41 -------------------------------- drivers/gpu/drm/ttm/ttm_bo_util.c | 1 - drivers/gpu/drm/ttm/ttm_execbuf_util.c | 9 ------- include/drm/ttm/ttm_bo_api.h | 33 +------------------------- include/drm/ttm/ttm_bo_driver.h | 14 ----------- 5 files changed, 1 insertion(+), 97 deletions(-)drivers/gpu/drm/ttm/ttm_bo.c +0
-41@@ -141,7 +141,6 @@ static void ttm_bo_release_list(struct kref *list_kref)BUG_ON (atomic_read (&bo->list_kref.refcount));BUG_ON (atomic_read (&bo->kref.refcount)); -BUG_ON (atomic_read (&bo->cpu_writers));BUG_ON (bo->sync_obj !=NULL );BUG_ON (bo->mem.mm_node !=NULL );BUG_ON (!list_empty (&bo->lru));@@ -1050,16 +1049,6 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo, }EXPORT_SYMBOL (ttm_bo_mem_space); -int ttm_bo_wait_cpu (struct ttm_buffer_object *bo,bool no_wait) -{ -if ((atomic_read (&bo->cpu_writers) >0 ) && no_wait) -return -EBUSY ; - -return wait_event_interruptible (bo->event_queue, -atomic_read (&bo->cpu_writers) ==0 ); -} -EXPORT_SYMBOL (ttm_bo_wait_cpu); - int ttm_bo_move_buffer(struct ttm_buffer_object *bo, struct ttm_placement *placement, bool interruptible, bool no_wait_reserve,@@ -1211,7 +1200,6 @@ int ttm_bo_init(struct ttm_bo_device *bdev,kref_init (&bo->kref);kref_init (&bo->list_kref); -atomic_set (&bo->cpu_writers,0 );atomic_set (&bo->reserved,1 );init_waitqueue_head (&bo->event_queue);INIT_LIST_HEAD (&bo->lru);@@ -1769,35 +1757,6 @@ int ttm_bo_wait(struct ttm_buffer_object *bo, }EXPORT_SYMBOL (ttm_bo_wait); -int ttm_bo_synccpu_write_grab (struct ttm_buffer_object *bo,bool no_wait) -{ -struct ttm_bo_device *bdev = bo->bdev; -int ret =0 ; - -/* -* Using ttm_bo_reserve makes sure the lru lists are updated. -*/ - - ret =ttm_bo_reserve (bo, true, no_wait, false,0 ); -if (unlikely (ret !=0 )) -return ret; -spin_lock (&bdev->fence_lock); - ret =ttm_bo_wait (bo, false, true, no_wait); -spin_unlock (&bdev->fence_lock); -if (likely (ret ==0 )) -atomic_inc (&bo->cpu_writers); -ttm_bo_unreserve (bo); -return ret; -} -EXPORT_SYMBOL (ttm_bo_synccpu_write_grab); - -void ttm_bo_synccpu_write_release (struct ttm_buffer_object *bo) -{ -if (atomic_dec_and_test (&bo->cpu_writers)) -wake_up_all (&bo->event_queue); -} -EXPORT_SYMBOL (ttm_bo_synccpu_write_release); -/** * A buffer object shrink method that tries to swap out the first * buffer object on the bo_global::swap_lru list. drivers/gpu/drm/ttm/ttm_bo_util.c +0
-1@@ -439,7 +439,6 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,INIT_LIST_HEAD (&fbo->swap);INIT_LIST_HEAD (&fbo->io_reserve_lru); fbo->vm_node =NULL ; -atomic_set (&fbo->cpu_writers,0 ); fbo->sync_obj = driver->sync_obj_ref (bo->sync_obj);kref_init (&fbo->list_kref);drivers/gpu/drm/ttm/ttm_execbuf_util.c +0
-9@@ -181,15 +181,6 @@ retry_this_bo: } entry->reserved = true; -if (unlikely (atomic_read (&bo->cpu_writers) >0 )) { -ttm_eu_backoff_reservation_locked (list); -spin_unlock (&glob->lru_lock); -ttm_eu_list_ref_sub (list); - ret =ttm_bo_wait_cpu (bo, false); -if (ret) -return ret; - goto retry; - } }ttm_eu_del_from_lru_locked (list);include/drm/ttm/ttm_bo_api.h +1
-32@@ -225,12 +225,6 @@ struct ttm_buffer_object {bool evicted;/** -* Members protected by the bo::reserved lock only when written to. -*/ - -atomic_t cpu_writers; - -/** * Members protected by the bdev::lru_lock. */ @@ -423,31 +417,6 @@ extern void ttm_bo_unlock_delayed_workqueue(struct ttm_bo_device *bdev, int resched);/** -* ttm_bo_synccpu_write_grab -* -* @bo: The buffer object: -* @no_wait: Return immediately if buffer is busy. -* -* Synchronizes a buffer object for CPU RW access. This means -* blocking command submission that affects the buffer and -* waiting for buffer idle. This lock is recursive. -* Returns -* -EBUSY if the buffer is busy and no_wait is true. -* -ERESTARTSYS if interrupted by a signal. -*/ -extern int -ttm_bo_synccpu_write_grab (struct ttm_buffer_object *bo,bool no_wait); - -/** -* ttm_bo_synccpu_write_release: -* -* @bo : The buffer object. -* -* Releases a synccpu lock. -*/ -extern void ttm_bo_synccpu_write_release (struct ttm_buffer_object *bo); - -/** * ttm_bo_acc_size * * @bdev: Pointer to a ttm_bo_device struct. @@ -513,7 +482,7 @@ extern int ttm_bo_init(struct ttm_bo_device *bdev, void (*destroy) (struct ttm_buffer_object *));/** -* ttm_bo_synccpu_object_init +* ttm_bo_create * * @bdev: Pointer to a ttm_bo_device struct. * @bo: Pointer to a ttm_buffer_object to be initialized. include/drm/ttm/ttm_bo_driver.h +0
-14@@ -729,20 +729,6 @@ extern void ttm_bo_mem_put(struct ttm_buffer_object *bo,extern void ttm_bo_mem_put_locked (struct ttm_buffer_object *bo,struct ttm_mem_reg *mem); -/** -* ttm_bo_wait_for_cpu -* -* @bo: Pointer to a struct ttm_buffer_object. -* @no_wait: Don't sleep while waiting. -* -* Wait until a buffer object is no longer sync'ed for CPU access. -* Returns: -* -EBUSY: Buffer object was sync'ed for CPU access. (only if no_wait == 1). -* -ERESTARTSYS: An interruptible sleep was interrupted by a signal. -*/ - -extern int ttm_bo_wait_cpu (struct ttm_buffer_object *bo,bool no_wait); -extern void ttm_bo_global_release (struct drm_global_reference *ref);extern int ttm_bo_global_init (struct drm_global_reference *ref);_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel
Actually, vmwgfx will be using this for the upcoming hardware version, so please hold this patch, so we don't have to reinsert the code.
/Thomas
Quoted 205 lines · Maarten Lankhorst
Nobody uses it, so might as well simplify the code some.
Signed-off-by Maarten Lankhorst <[email protected]>Reviewed-by Jerome Glisse <[email protected]>--- drivers/gpu/drm/ttm/ttm_bo.c | 41 -------------------------------- drivers/gpu/drm/ttm/ttm_bo_util.c | 1 - drivers/gpu/drm/ttm/ttm_execbuf_util.c | 9 ------- include/drm/ttm/ttm_bo_api.h | 33 +------------------------- include/drm/ttm/ttm_bo_driver.h | 14 ----------- 5 files changed, 1 insertion(+), 97 deletions(-)drivers/gpu/drm/ttm/ttm_bo.c +0
-41@@ -141,7 +141,6 @@ static void ttm_bo_release_list(struct kref *list_kref)BUG_ON (atomic_read (&bo->list_kref.refcount));BUG_ON (atomic_read (&bo->kref.refcount)); -BUG_ON (atomic_read (&bo->cpu_writers));BUG_ON (bo->sync_obj !=NULL );BUG_ON (bo->mem.mm_node !=NULL );BUG_ON (!list_empty (&bo->lru));@@ -1050,16 +1049,6 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo, }EXPORT_SYMBOL (ttm_bo_mem_space); -int ttm_bo_wait_cpu (struct ttm_buffer_object *bo,bool no_wait) -{ -if ((atomic_read (&bo->cpu_writers) >0 ) && no_wait) -return -EBUSY ; - -return wait_event_interruptible (bo->event_queue, -atomic_read (&bo->cpu_writers) ==0 ); -} -EXPORT_SYMBOL (ttm_bo_wait_cpu); - int ttm_bo_move_buffer(struct ttm_buffer_object *bo, struct ttm_placement *placement, bool interruptible, bool no_wait_reserve,@@ -1211,7 +1200,6 @@ int ttm_bo_init(struct ttm_bo_device *bdev,kref_init (&bo->kref);kref_init (&bo->list_kref); -atomic_set (&bo->cpu_writers,0 );atomic_set (&bo->reserved,1 );init_waitqueue_head (&bo->event_queue);INIT_LIST_HEAD (&bo->lru);@@ -1769,35 +1757,6 @@ int ttm_bo_wait(struct ttm_buffer_object *bo, }EXPORT_SYMBOL (ttm_bo_wait); -int ttm_bo_synccpu_write_grab (struct ttm_buffer_object *bo,bool no_wait) -{ -struct ttm_bo_device *bdev = bo->bdev; -int ret =0 ; - -/* -* Using ttm_bo_reserve makes sure the lru lists are updated. -*/ - - ret =ttm_bo_reserve (bo, true, no_wait, false,0 ); -if (unlikely (ret !=0 )) -return ret; -spin_lock (&bdev->fence_lock); - ret =ttm_bo_wait (bo, false, true, no_wait); -spin_unlock (&bdev->fence_lock); -if (likely (ret ==0 )) -atomic_inc (&bo->cpu_writers); -ttm_bo_unreserve (bo); -return ret; -} -EXPORT_SYMBOL (ttm_bo_synccpu_write_grab); - -void ttm_bo_synccpu_write_release (struct ttm_buffer_object *bo) -{ -if (atomic_dec_and_test (&bo->cpu_writers)) -wake_up_all (&bo->event_queue); -} -EXPORT_SYMBOL (ttm_bo_synccpu_write_release); -/** * A buffer object shrink method that tries to swap out the first * buffer object on the bo_global::swap_lru list. drivers/gpu/drm/ttm/ttm_bo_util.c +0
-1@@ -439,7 +439,6 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,INIT_LIST_HEAD (&fbo->swap);INIT_LIST_HEAD (&fbo->io_reserve_lru); fbo->vm_node =NULL ; -atomic_set (&fbo->cpu_writers,0 ); fbo->sync_obj = driver->sync_obj_ref (bo->sync_obj);kref_init (&fbo->list_kref);drivers/gpu/drm/ttm/ttm_execbuf_util.c +0
-9@@ -181,15 +181,6 @@ retry_this_bo: } entry->reserved = true; -if (unlikely (atomic_read (&bo->cpu_writers) >0 )) { -ttm_eu_backoff_reservation_locked (list); -spin_unlock (&glob->lru_lock); -ttm_eu_list_ref_sub (list); - ret =ttm_bo_wait_cpu (bo, false); -if (ret) -return ret; - goto retry; - } }ttm_eu_del_from_lru_locked (list);include/drm/ttm/ttm_bo_api.h +1
-32@@ -225,12 +225,6 @@ struct ttm_buffer_object {bool evicted;/** -* Members protected by the bo::reserved lock only when written to. -*/ - -atomic_t cpu_writers; - -/** * Members protected by the bdev::lru_lock. */ @@ -423,31 +417,6 @@ extern void ttm_bo_unlock_delayed_workqueue(struct ttm_bo_device *bdev, int resched);/** -* ttm_bo_synccpu_write_grab -* -* @bo: The buffer object: -* @no_wait: Return immediately if buffer is busy. -* -* Synchronizes a buffer object for CPU RW access. This means -* blocking command submission that affects the buffer and -* waiting for buffer idle. This lock is recursive. -* Returns -* -EBUSY if the buffer is busy and no_wait is true. -* -ERESTARTSYS if interrupted by a signal. -*/ -extern int -ttm_bo_synccpu_write_grab (struct ttm_buffer_object *bo,bool no_wait); - -/** -* ttm_bo_synccpu_write_release: -* -* @bo : The buffer object. -* -* Releases a synccpu lock. -*/ -extern void ttm_bo_synccpu_write_release (struct ttm_buffer_object *bo); - -/** * ttm_bo_acc_size * * @bdev: Pointer to a ttm_bo_device struct. @@ -513,7 +482,7 @@ extern int ttm_bo_init(struct ttm_bo_device *bdev, void (*destroy) (struct ttm_buffer_object *));/** -* ttm_bo_synccpu_object_init +* ttm_bo_create * * @bdev: Pointer to a ttm_bo_device struct. * @bo: Pointer to a ttm_buffer_object to be initialized. include/drm/ttm/ttm_bo_driver.h +0
-14@@ -729,20 +729,6 @@ extern void ttm_bo_mem_put(struct ttm_buffer_object *bo,extern void ttm_bo_mem_put_locked (struct ttm_buffer_object *bo,struct ttm_mem_reg *mem); -/** -* ttm_bo_wait_for_cpu -* -* @bo: Pointer to a struct ttm_buffer_object. -* @no_wait: Don't sleep while waiting. -* -* Wait until a buffer object is no longer sync'ed for CPU access. -* Returns: -* -EBUSY: Buffer object was sync'ed for CPU access. (only if no_wait == 1). -* -ERESTARTSYS: An interruptible sleep was interrupted by a signal. -*/ - -extern int ttm_bo_wait_cpu (struct ttm_buffer_object *bo,bool no_wait); -extern void ttm_bo_global_release (struct drm_global_reference *ref);extern int ttm_bo_global_init (struct drm_global_reference *ref);_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel