Re: [PATCH 4/6] drm/ttm: add the infrastructur for pipelined evictions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 02.07.2016 um 10:39 schrieb Thomas Hellstrom:
Christian,

Thanks for doing this!
A question below:

On 06/15/2016 01:44 PM, Christian König wrote:
From: Christian König <christian.koenig@xxxxxxx>

Free up the memory immediately, remember the last eviction for each domain and
make new allocations depend on the last eviction to be completed.

Signed-off-by: Christian König <christian.koenig@xxxxxxx>
---
  drivers/gpu/drm/ttm/ttm_bo.c      | 49 ++++++++++++++++++---
  drivers/gpu/drm/ttm/ttm_bo_util.c | 92 +++++++++++++++++++++++++++++++++++++++
  include/drm/ttm/ttm_bo_driver.h   | 24 ++++++++++
  3 files changed, 160 insertions(+), 5 deletions(-)


/*
  	 * Protected by @io_reserve_mutex:
@@ -298,6 +301,11 @@ struct ttm_mem_type_manager {
  	 */
struct list_head lru;
+
+	/*
+	 * Protected by @move_lock.
+	 */
+	struct fence *move;
  };
Did you look at protecting the move fence with RCU? I figure where there
actually is a fence it doesn't matter much but in the fastpath where
move is NULL we'd be able to get rid of a number of locking cycles.

Yeah, thought about that as well.


I guess though there might be both licensing implications and
requirements to using kfree_rcu() to free the fence.

The problem wasn't licensing (but it is good that you point that out I wasn't aware of this problem), but that that the existing fence RCU function wouldn't worked here and I didn't had time to take a closer look.

Should be relative easy to switch the read path over, because we already free the fences RCU protected.

Regards,
Christian.


/Thomas




_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux