All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2
@ 2016-01-11 14:35 Christian König
  2016-01-11 14:35 ` [PATCH 2/5] drm/ttm: fix adding foreign BOs to the swap LRU Christian König
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Christian König @ 2016-01-11 14:35 UTC (permalink / raw)
  To: alexdeucher; +Cc: dri-devel

From: Christian König <christian.koenig@amd.com>

If we import a BO with an external reservation object we don't
reserve/unreserve it. So we never add it to the LRU causing a possible
deny of service.

v2: fix typo in commit message

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/ttm/ttm_bo.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 745e996..a98a5d5 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -1170,9 +1170,15 @@ int ttm_bo_init(struct ttm_bo_device *bdev,
 	if (likely(!ret))
 		ret = ttm_bo_validate(bo, placement, interruptible, false);
 
-	if (!resv)
+	if (!resv) {
 		ttm_bo_unreserve(bo);
 
+	} else if (!(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) {
+		spin_lock(&bo->glob->lru_lock);
+		ttm_bo_add_to_lru(bo);
+		spin_unlock(&bo->glob->lru_lock);
+	}
+
 	if (unlikely(ret))
 		ttm_bo_unref(&bo);
 
-- 
2.5.0

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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/5] drm/ttm: fix adding foreign BOs to the swap LRU
  2016-01-11 14:35 [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2 Christian König
@ 2016-01-11 14:35 ` Christian König
  2016-01-11 15:14   ` Thomas Hellstrom
  2016-01-11 14:35 ` [PATCH 3/5] drm/ttm: add ttm_bo_move_to_lru_tail function v2 Christian König
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Christian König @ 2016-01-11 14:35 UTC (permalink / raw)
  To: alexdeucher; +Cc: dri-devel

From: Christian König <christian.koenig@amd.com>

It doesn't make any sense to try to swap out imported BOs.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/ttm/ttm_bo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index a98a5d5..3ea9a01 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -176,7 +176,7 @@ void ttm_bo_add_to_lru(struct ttm_buffer_object *bo)
 		list_add_tail(&bo->lru, &man->lru);
 		kref_get(&bo->list_kref);
 
-		if (bo->ttm != NULL) {
+		if (bo->ttm && !(bo->ttm->page_flags & TTM_PAGE_FLAG_SG)) {
 			list_add_tail(&bo->swap, &bo->glob->swap_lru);
 			kref_get(&bo->list_kref);
 		}
-- 
2.5.0

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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/5] drm/ttm: add ttm_bo_move_to_lru_tail function v2
  2016-01-11 14:35 [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2 Christian König
  2016-01-11 14:35 ` [PATCH 2/5] drm/ttm: fix adding foreign BOs to the swap LRU Christian König
@ 2016-01-11 14:35 ` Christian König
  2016-01-11 15:29   ` Thomas Hellstrom
  2016-01-11 14:35 ` [PATCH 4/5] drm/amdgpu: move VM page tables to the LRU end on CS v2 Christian König
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Christian König @ 2016-01-11 14:35 UTC (permalink / raw)
  To: alexdeucher; +Cc: dri-devel

From: Christian König <christian.koenig@amd.com>

This allows the drivers to move a BO to the end of the LRU
without removing and adding it again.

v2: Make it more robust, handle pinned and swapable BOs as well.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/ttm/ttm_bo.c | 21 +++++++++++++++++++++
 include/drm/ttm/ttm_bo_api.h | 10 ++++++++++
 2 files changed, 31 insertions(+)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 3ea9a01..4cbf265 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -228,6 +228,27 @@ void ttm_bo_del_sub_from_lru(struct ttm_buffer_object *bo)
 }
 EXPORT_SYMBOL(ttm_bo_del_sub_from_lru);
 
+void ttm_bo_move_to_lru_tail(struct ttm_buffer_object *bo)
+{
+	struct ttm_bo_device *bdev = bo->bdev;
+	struct ttm_mem_type_manager *man;
+
+	lockdep_assert_held(&bo->resv->lock.base);
+
+	if (bo->mem.placement & TTM_PL_FLAG_NO_EVICT) {
+		list_del_init(&bo->swap);
+		list_del_init(&bo->lru);
+
+	} else {
+		if (bo->ttm && !(bo->ttm->page_flags & TTM_PAGE_FLAG_SG))
+			list_move_tail(&bo->swap, &bo->glob->swap_lru);
+
+		man = &bdev->man[bo->mem.mem_type];
+		list_move_tail(&bo->lru, &man->lru);
+	}
+}
+EXPORT_SYMBOL(ttm_bo_move_to_lru_tail);
+
 /*
  * Call bo->mutex locked.
  */
diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
index c768ddf..afae231 100644
--- a/include/drm/ttm/ttm_bo_api.h
+++ b/include/drm/ttm/ttm_bo_api.h
@@ -383,6 +383,16 @@ extern void ttm_bo_add_to_lru(struct ttm_buffer_object *bo);
  */
 extern int ttm_bo_del_from_lru(struct ttm_buffer_object *bo);
 
+/**
+ * ttm_bo_move_to_lru_tail
+ *
+ * @bo: The buffer object.
+ *
+ * Move this BO to the tail of all lru lists used to lookup and reserve an
+ * object. This function must be called with struct ttm_bo_global::lru_lock
+ * held, and is used to make a BO less likely to be considered for eviction.
+ */
+extern void ttm_bo_move_to_lru_tail(struct ttm_buffer_object *bo);
 
 /**
  * ttm_bo_lock_delayed_workqueue
-- 
2.5.0

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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/5] drm/amdgpu: move VM page tables to the LRU end on CS v2
  2016-01-11 14:35 [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2 Christian König
  2016-01-11 14:35 ` [PATCH 2/5] drm/ttm: fix adding foreign BOs to the swap LRU Christian König
  2016-01-11 14:35 ` [PATCH 3/5] drm/ttm: add ttm_bo_move_to_lru_tail function v2 Christian König
@ 2016-01-11 14:35 ` Christian König
  2016-01-11 14:35 ` [PATCH 5/5] drm/amdgpu: validate duplicates first Christian König
  2016-01-11 15:06 ` [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2 Thomas Hellstrom
  4 siblings, 0 replies; 9+ messages in thread
From: Christian König @ 2016-01-11 14:35 UTC (permalink / raw)
  To: alexdeucher; +Cc: dri-devel

From: Christian König <christian.koenig@amd.com>

This makes it less likely to run into an ENOMEM because
VM page tables are evicted last.

v2: move the BOs in the LRU tail after validation

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu.h    |  2 ++
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c |  7 ++++++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 27 +++++++++++++++++++++++++++
 3 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 003959f..313b0cc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -987,6 +987,8 @@ void amdgpu_vm_get_pd_bo(struct amdgpu_vm *vm,
 			 struct list_head *validated,
 			 struct amdgpu_bo_list_entry *entry);
 void amdgpu_vm_get_pt_bos(struct amdgpu_vm *vm, struct list_head *duplicates);
+void amdgpu_vm_move_pt_bos_in_lru(struct amdgpu_device *adev,
+				  struct amdgpu_vm *vm);
 int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
 		      struct amdgpu_sync *sync);
 void amdgpu_vm_flush(struct amdgpu_ring *ring,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index ce0254d..1fffc33 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -428,8 +428,10 @@ static int amdgpu_cs_parser_relocs(struct amdgpu_cs_parser *p)
 	r = amdgpu_cs_list_validate(p->adev, &fpriv->vm, &duplicates);
 
 error_validate:
-	if (r)
+	if (r) {
+		amdgpu_vm_move_pt_bos_in_lru(p->adev, &fpriv->vm);
 		ttm_eu_backoff_reservation(&p->ticket, &p->validated);
+	}
 
 error_reserve:
 	if (need_mmap_lock)
@@ -473,8 +475,11 @@ static int cmp_size_smaller_first(void *priv, struct list_head *a,
  **/
 static void amdgpu_cs_parser_fini(struct amdgpu_cs_parser *parser, int error, bool backoff)
 {
+	struct amdgpu_fpriv *fpriv = parser->filp->driver_priv;
 	unsigned i;
 
+	amdgpu_vm_move_pt_bos_in_lru(parser->adev, &fpriv->vm);
+
 	if (!error) {
 		/* Sort the buffer list from the smallest to largest buffer,
 		 * which affects the order of buffers in the LRU list.
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 8f7688e..aefc668 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -119,6 +119,33 @@ void amdgpu_vm_get_pt_bos(struct amdgpu_vm *vm, struct list_head *duplicates)
 
 		list_add(&entry->tv.head, duplicates);
 	}
+
+}
+
+/**
+ * amdgpu_vm_move_pt_bos_in_lru - move the PT BOs to the LRU tail
+ *
+ * @adev: amdgpu device instance
+ * @vm: vm providing the BOs
+ *
+ * Move the PT BOs to the tail of the LRU.
+ */
+void amdgpu_vm_move_pt_bos_in_lru(struct amdgpu_device *adev,
+				  struct amdgpu_vm *vm)
+{
+	struct ttm_bo_global *glob = adev->mman.bdev.glob;
+	unsigned i;
+
+	spin_lock(&glob->lru_lock);
+	for (i = 0; i <= vm->max_pde_used; ++i) {
+		struct amdgpu_bo_list_entry *entry = &vm->page_tables[i].entry;
+
+		if (!entry->robj)
+			continue;
+
+		ttm_bo_move_to_lru_tail(&entry->robj->tbo);
+	}
+	spin_unlock(&glob->lru_lock);
 }
 
 /**
-- 
2.5.0

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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 5/5] drm/amdgpu: validate duplicates first
  2016-01-11 14:35 [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2 Christian König
                   ` (2 preceding siblings ...)
  2016-01-11 14:35 ` [PATCH 4/5] drm/amdgpu: move VM page tables to the LRU end on CS v2 Christian König
@ 2016-01-11 14:35 ` Christian König
  2016-01-13 17:23   ` Alex Deucher
  2016-01-11 15:06 ` [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2 Thomas Hellstrom
  4 siblings, 1 reply; 9+ messages in thread
From: Christian König @ 2016-01-11 14:35 UTC (permalink / raw)
  To: alexdeucher; +Cc: dri-devel

From: Christian König <christian.koenig@amd.com>

Most VM BOs end up in the duplicates list, validate it
first make -ENOMEM less likely.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <David1.Zhou@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index 1fffc33..6f89f8e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -421,11 +421,11 @@ static int amdgpu_cs_parser_relocs(struct amdgpu_cs_parser *p)
 
 	amdgpu_vm_get_pt_bos(&fpriv->vm, &duplicates);
 
-	r = amdgpu_cs_list_validate(p->adev, &fpriv->vm, &p->validated);
+	r = amdgpu_cs_list_validate(p->adev, &fpriv->vm, &duplicates);
 	if (r)
 		goto error_validate;
 
-	r = amdgpu_cs_list_validate(p->adev, &fpriv->vm, &duplicates);
+	r = amdgpu_cs_list_validate(p->adev, &fpriv->vm, &p->validated);
 
 error_validate:
 	if (r) {
-- 
2.5.0

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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2
  2016-01-11 14:35 [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2 Christian König
                   ` (3 preceding siblings ...)
  2016-01-11 14:35 ` [PATCH 5/5] drm/amdgpu: validate duplicates first Christian König
@ 2016-01-11 15:06 ` Thomas Hellstrom
  4 siblings, 0 replies; 9+ messages in thread
From: Thomas Hellstrom @ 2016-01-11 15:06 UTC (permalink / raw)
  To: Christian König, alexdeucher; +Cc: dri-devel

LGTM, minor nitpick below.

Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>

On 01/11/2016 03:35 PM, Christian König wrote:
> From: Christian König <christian.koenig@amd.com>
>
> If we import a BO with an external reservation object we don't
> reserve/unreserve it. So we never add it to the LRU causing a possible
> deny of service.
s/deny/denial/

>
> v2: fix typo in commit message
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> ---
>  drivers/gpu/drm/ttm/ttm_bo.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index 745e996..a98a5d5 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -1170,9 +1170,15 @@ int ttm_bo_init(struct ttm_bo_device *bdev,
>  	if (likely(!ret))
>  		ret = ttm_bo_validate(bo, placement, interruptible, false);
>  
> -	if (!resv)
> +	if (!resv) {
>  		ttm_bo_unreserve(bo);
>  
> +	} else if (!(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) {
> +		spin_lock(&bo->glob->lru_lock);
> +		ttm_bo_add_to_lru(bo);
> +		spin_unlock(&bo->glob->lru_lock);
> +	}
> +
>  	if (unlikely(ret))
>  		ttm_bo_unref(&bo);
>  


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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/5] drm/ttm: fix adding foreign BOs to the swap LRU
  2016-01-11 14:35 ` [PATCH 2/5] drm/ttm: fix adding foreign BOs to the swap LRU Christian König
@ 2016-01-11 15:14   ` Thomas Hellstrom
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Hellstrom @ 2016-01-11 15:14 UTC (permalink / raw)
  To: Christian König, alexdeucher; +Cc: dri-devel

Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>

BTW, does Radeon touch the caching mode of imported buffers through TTM
(like write-combining)?
Do we need something similar for that?

/Thomas


On 01/11/2016 03:35 PM, Christian König wrote:
> From: Christian König <christian.koenig@amd.com>
>
> It doesn't make any sense to try to swap out imported BOs.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> ---
>  drivers/gpu/drm/ttm/ttm_bo.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index a98a5d5..3ea9a01 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -176,7 +176,7 @@ void ttm_bo_add_to_lru(struct ttm_buffer_object *bo)
>  		list_add_tail(&bo->lru, &man->lru);
>  		kref_get(&bo->list_kref);
>  
> -		if (bo->ttm != NULL) {
> +		if (bo->ttm && !(bo->ttm->page_flags & TTM_PAGE_FLAG_SG)) {
>  			list_add_tail(&bo->swap, &bo->glob->swap_lru);
>  			kref_get(&bo->list_kref);
>  		}



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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/5] drm/ttm: add ttm_bo_move_to_lru_tail function v2
  2016-01-11 14:35 ` [PATCH 3/5] drm/ttm: add ttm_bo_move_to_lru_tail function v2 Christian König
@ 2016-01-11 15:29   ` Thomas Hellstrom
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Hellstrom @ 2016-01-11 15:29 UTC (permalink / raw)
  To: Christian König, alexdeucher; +Cc: dri-devel

LGTM,

Although perhaps check that the LRU lock is held as well.

Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>

On 01/11/2016 03:35 PM, Christian König wrote:
> From: Christian König <christian.koenig@amd.com>
>
> This allows the drivers to move a BO to the end of the LRU
> without removing and adding it again.
>
> v2: Make it more robust, handle pinned and swapable BOs as well.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> ---
>  drivers/gpu/drm/ttm/ttm_bo.c | 21 +++++++++++++++++++++
>  include/drm/ttm/ttm_bo_api.h | 10 ++++++++++
>  2 files changed, 31 insertions(+)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index 3ea9a01..4cbf265 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -228,6 +228,27 @@ void ttm_bo_del_sub_from_lru(struct ttm_buffer_object *bo)
>  }
>  EXPORT_SYMBOL(ttm_bo_del_sub_from_lru);
>  
> +void ttm_bo_move_to_lru_tail(struct ttm_buffer_object *bo)
> +{
> +	struct ttm_bo_device *bdev = bo->bdev;
> +	struct ttm_mem_type_manager *man;
> +
> +	lockdep_assert_held(&bo->resv->lock.base);
> +
> +	if (bo->mem.placement & TTM_PL_FLAG_NO_EVICT) {
> +		list_del_init(&bo->swap);
> +		list_del_init(&bo->lru);
> +
> +	} else {
> +		if (bo->ttm && !(bo->ttm->page_flags & TTM_PAGE_FLAG_SG))
> +			list_move_tail(&bo->swap, &bo->glob->swap_lru);
> +
> +		man = &bdev->man[bo->mem.mem_type];
> +		list_move_tail(&bo->lru, &man->lru);
> +	}
> +}
> +EXPORT_SYMBOL(ttm_bo_move_to_lru_tail);
> +
>  /*
>   * Call bo->mutex locked.
>   */
> diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
> index c768ddf..afae231 100644
> --- a/include/drm/ttm/ttm_bo_api.h
> +++ b/include/drm/ttm/ttm_bo_api.h
> @@ -383,6 +383,16 @@ extern void ttm_bo_add_to_lru(struct ttm_buffer_object *bo);
>   */
>  extern int ttm_bo_del_from_lru(struct ttm_buffer_object *bo);
>  
> +/**
> + * ttm_bo_move_to_lru_tail
> + *
> + * @bo: The buffer object.
> + *
> + * Move this BO to the tail of all lru lists used to lookup and reserve an
> + * object. This function must be called with struct ttm_bo_global::lru_lock
> + * held, and is used to make a BO less likely to be considered for eviction.
> + */
> +extern void ttm_bo_move_to_lru_tail(struct ttm_buffer_object *bo);
>  
>  /**
>   * ttm_bo_lock_delayed_workqueue


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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 5/5] drm/amdgpu: validate duplicates first
  2016-01-11 14:35 ` [PATCH 5/5] drm/amdgpu: validate duplicates first Christian König
@ 2016-01-13 17:23   ` Alex Deucher
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Deucher @ 2016-01-13 17:23 UTC (permalink / raw)
  To: Christian König; +Cc: Maling list - DRI developers

On Mon, Jan 11, 2016 at 9:35 AM, Christian König
<deathsimple@vodafone.de> wrote:
> From: Christian König <christian.koenig@amd.com>
>
> Most VM BOs end up in the duplicates list, validate it
> first make -ENOMEM less likely.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> Reviewed-by: Chunming Zhou <David1.Zhou@amd.com>

Applied the series.  thanks!

Alex

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> index 1fffc33..6f89f8e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> @@ -421,11 +421,11 @@ static int amdgpu_cs_parser_relocs(struct amdgpu_cs_parser *p)
>
>         amdgpu_vm_get_pt_bos(&fpriv->vm, &duplicates);
>
> -       r = amdgpu_cs_list_validate(p->adev, &fpriv->vm, &p->validated);
> +       r = amdgpu_cs_list_validate(p->adev, &fpriv->vm, &duplicates);
>         if (r)
>                 goto error_validate;
>
> -       r = amdgpu_cs_list_validate(p->adev, &fpriv->vm, &duplicates);
> +       r = amdgpu_cs_list_validate(p->adev, &fpriv->vm, &p->validated);
>
>  error_validate:
>         if (r) {
> --
> 2.5.0
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-01-13 17:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-11 14:35 [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2 Christian König
2016-01-11 14:35 ` [PATCH 2/5] drm/ttm: fix adding foreign BOs to the swap LRU Christian König
2016-01-11 15:14   ` Thomas Hellstrom
2016-01-11 14:35 ` [PATCH 3/5] drm/ttm: add ttm_bo_move_to_lru_tail function v2 Christian König
2016-01-11 15:29   ` Thomas Hellstrom
2016-01-11 14:35 ` [PATCH 4/5] drm/amdgpu: move VM page tables to the LRU end on CS v2 Christian König
2016-01-11 14:35 ` [PATCH 5/5] drm/amdgpu: validate duplicates first Christian König
2016-01-13 17:23   ` Alex Deucher
2016-01-11 15:06 ` [PATCH 1/5] drm/ttm: fix adding foreign BOs to the LRU during init v2 Thomas Hellstrom

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.