[PATCH 2/2] drm/amdgpu: remove sorting of CS BOs
Ayyappa Ch
ayyappa.ch.linux at gmail.com
Fri Apr 15 05:21:02 UTC 2016
Hello Christian ,
As per below comment large buffer eviction is more expensive. So
removing this code will solve the same problem?
- /* Sort the buffer list from the smallest to largest buffer,
- * which affects the order of buffers in the LRU list.
- * This assures that the smallest buffers are added first
- * to the LRU list, so they are likely to be later evicted
- * first, instead of large buffers whose eviction is more
- * expensive.
- *
- * This slightly lowers the number of bytes moved by TTM
- * per frame under memory pressure.
- */
- list_sort(NULL, &parser->validated, cmp_size_smaller_first);
-
Thanks,
Ayyappa.
On Thu, Apr 14, 2016 at 6:24 PM, Christian König
<deathsimple at vodafone.de> wrote:
> From: Christian König <christian.koenig at amd.com>
>
> Not needed any more.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 23 -----------------------
> 1 file changed, 23 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> index 9392e50..00cf74a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> @@ -24,7 +24,6 @@
> * Authors:
> * Jerome Glisse <glisse at freedesktop.org>
> */
> -#include <linux/list_sort.h>
> #include <linux/pagemap.h>
> #include <drm/drmP.h>
> #include <drm/amdgpu_drm.h>
> @@ -527,16 +526,6 @@ static int amdgpu_cs_sync_rings(struct amdgpu_cs_parser *p)
> return 0;
> }
>
> -static int cmp_size_smaller_first(void *priv, struct list_head *a,
> - struct list_head *b)
> -{
> - struct amdgpu_bo_list_entry *la = list_entry(a, struct amdgpu_bo_list_entry, tv.head);
> - struct amdgpu_bo_list_entry *lb = list_entry(b, struct amdgpu_bo_list_entry, tv.head);
> -
> - /* Sort A before B if A is smaller. */
> - return (int)la->robj->tbo.num_pages - (int)lb->robj->tbo.num_pages;
> -}
> -
> /**
> * cs_parser_fini() - clean parser states
> * @parser: parser structure holding parsing context.
> @@ -553,18 +542,6 @@ static void amdgpu_cs_parser_fini(struct amdgpu_cs_parser *parser, int error, bo
> if (!error) {
> amdgpu_vm_move_pt_bos_in_lru(parser->adev, &fpriv->vm);
>
> - /* Sort the buffer list from the smallest to largest buffer,
> - * which affects the order of buffers in the LRU list.
> - * This assures that the smallest buffers are added first
> - * to the LRU list, so they are likely to be later evicted
> - * first, instead of large buffers whose eviction is more
> - * expensive.
> - *
> - * This slightly lowers the number of bytes moved by TTM
> - * per frame under memory pressure.
> - */
> - list_sort(NULL, &parser->validated, cmp_size_smaller_first);
> -
> ttm_eu_fence_buffer_objects(&parser->ticket,
> &parser->validated,
> parser->fence);
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the dri-devel
mailing list