All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH libdrm 1/2] amdpgu: fix coding style in amdgpu_vamgr.c
@ 2017-11-04 14:43 Christian König
       [not found] ` <20171104144331.1464-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Christian König @ 2017-11-04 14:43 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

No functional change.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 amdgpu/amdgpu_vamgr.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/amdgpu/amdgpu_vamgr.c b/amdgpu/amdgpu_vamgr.c
index 2b1388ed..8516b594 100644
--- a/amdgpu/amdgpu_vamgr.c
+++ b/amdgpu/amdgpu_vamgr.c
@@ -34,18 +34,19 @@
 #include "util_math.h"
 
 int amdgpu_va_range_query(amdgpu_device_handle dev,
-			  enum amdgpu_gpu_va_range type, uint64_t *start, uint64_t *end)
+			  enum amdgpu_gpu_va_range type,
+			  uint64_t *start, uint64_t *end)
 {
-	if (type == amdgpu_gpu_va_range_general) {
-		*start = dev->dev_info.virtual_address_offset;
-		*end = dev->dev_info.virtual_address_max;
-		return 0;
-	}
-	return -EINVAL;
+	if (type != amdgpu_gpu_va_range_general)
+		return -EINVAL;
+
+	*start = dev->dev_info.virtual_address_offset;
+	*end = dev->dev_info.virtual_address_max;
+	return 0;
 }
 
 drm_private void amdgpu_vamgr_init(struct amdgpu_bo_va_mgr *mgr, uint64_t start,
-			      uint64_t max, uint64_t alignment)
+				   uint64_t max, uint64_t alignment)
 {
 	mgr->va_offset = start;
 	mgr->va_max = max;
@@ -83,8 +84,8 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
 	/* first look for a hole */
 	LIST_FOR_EACH_ENTRY_SAFE(hole, n, &mgr->va_holes, list) {
 		if (base_required) {
-			if(hole->offset > base_required ||
-				(hole->offset + hole->size) < (base_required + size))
+			if (hole->offset > base_required ||
+			    (hole->offset + hole->size) < (base_required + size))
 				continue;
 			waste = base_required - hole->offset;
 			offset = base_required;
@@ -192,9 +193,9 @@ amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size)
 				hole->offset = va;
 				hole->size += size;
 				/* Merge lower hole if it's adjacent */
-				if (next != hole
-						&& &next->list != &mgr->va_holes
-						&& (next->offset + next->size) == va) {
+				if (next != hole &&
+				    &next->list != &mgr->va_holes &&
+				    (next->offset + next->size) == va) {
 					next->size += hole->size;
 					list_del(&hole->list);
 					free(hole);
-- 
2.11.0

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

* [PATCH libdrm 2/2] amdgpu: sanitize 64bit VA manager
       [not found] ` <20171104144331.1464-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
@ 2017-11-04 14:43   ` Christian König
       [not found]     ` <20171104144331.1464-2-christian.koenig-5C7GfCeVMHo@public.gmane.org>
  2017-11-07 18:03   ` [PATCH libdrm 1/2] amdpgu: fix coding style in amdgpu_vamgr.c Alex Deucher
  1 sibling, 1 reply; 4+ messages in thread
From: Christian König @ 2017-11-04 14:43 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Adding the extra reservation of the 32bit space to the 64bit manager is
complete nonsense and just a waste of memory and CPU cycles.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 amdgpu/amdgpu_device.c   | 24 ++++++------------------
 amdgpu/amdgpu_internal.h |  7 -------
 amdgpu/amdgpu_vamgr.c    |  4 ++--
 3 files changed, 8 insertions(+), 27 deletions(-)

diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c
index 2b31c45b..344e87ed 100644
--- a/amdgpu/amdgpu_device.c
+++ b/amdgpu/amdgpu_device.c
@@ -270,22 +270,16 @@ int amdgpu_device_initialize(int fd,
 		goto cleanup;
 	}
 
-	amdgpu_vamgr_init(&dev->vamgr, dev->dev_info.virtual_address_offset,
-			  dev->dev_info.virtual_address_max,
-			  dev->dev_info.virtual_address_alignment);
-
+	start = dev->dev_info.virtual_address_offset;
 	max = MIN2(dev->dev_info.virtual_address_max, 0xffffffff);
-	start = amdgpu_vamgr_find_va(&dev->vamgr,
-				     max - dev->dev_info.virtual_address_offset,
-				     dev->dev_info.virtual_address_alignment, 0);
-	if (start > 0xffffffff) {
-		fprintf(stderr, "%s: amdgpu_vamgr_find_va failed\n", __func__);
-		goto free_va; /* shouldn't get here */
-	}
-
 	amdgpu_vamgr_init(&dev->vamgr_32, start, max,
 			  dev->dev_info.virtual_address_alignment);
 
+	start = MAX2(dev->dev_info.virtual_address_offset, 0x100000000ULL);
+	max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL);
+	amdgpu_vamgr_init(&dev->vamgr, start, max,
+			  dev->dev_info.virtual_address_alignment);
+
 	r = amdgpu_parse_asic_ids(&dev->asic_ids);
 	if (r) {
 		fprintf(stderr, "%s: Cannot parse ASIC IDs, 0x%x.",
@@ -300,12 +294,6 @@ int amdgpu_device_initialize(int fd,
 
 	return 0;
 
-free_va:
-	r = -ENOMEM;
-	amdgpu_vamgr_free_va(&dev->vamgr, start,
-			     max - dev->dev_info.virtual_address_offset);
-	amdgpu_vamgr_deinit(&dev->vamgr);
-
 cleanup:
 	if (dev->fd >= 0)
 		close(dev->fd);
diff --git a/amdgpu/amdgpu_internal.h b/amdgpu/amdgpu_internal.h
index 56d15112..e26e5190 100644
--- a/amdgpu/amdgpu_internal.h
+++ b/amdgpu/amdgpu_internal.h
@@ -148,13 +148,6 @@ drm_private void amdgpu_vamgr_init(struct amdgpu_bo_va_mgr *mgr, uint64_t start,
 
 drm_private void amdgpu_vamgr_deinit(struct amdgpu_bo_va_mgr *mgr);
 
-drm_private uint64_t
-amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
-		     uint64_t alignment, uint64_t base_required);
-
-drm_private void
-amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size);
-
 drm_private int amdgpu_parse_asic_ids(struct amdgpu_asic_id **asic_ids);
 
 drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev);
diff --git a/amdgpu/amdgpu_vamgr.c b/amdgpu/amdgpu_vamgr.c
index 8516b594..ab425ef7 100644
--- a/amdgpu/amdgpu_vamgr.c
+++ b/amdgpu/amdgpu_vamgr.c
@@ -66,7 +66,7 @@ drm_private void amdgpu_vamgr_deinit(struct amdgpu_bo_va_mgr *mgr)
 	pthread_mutex_destroy(&mgr->bo_va_mutex);
 }
 
-drm_private uint64_t
+static drm_private uint64_t
 amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
 		     uint64_t alignment, uint64_t base_required)
 {
@@ -155,7 +155,7 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
 	return offset;
 }
 
-drm_private void
+static drm_private void
 amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size)
 {
 	struct amdgpu_bo_va_hole *hole;
-- 
2.11.0

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

* Re: [PATCH libdrm 1/2] amdpgu: fix coding style in amdgpu_vamgr.c
       [not found] ` <20171104144331.1464-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
  2017-11-04 14:43   ` [PATCH libdrm 2/2] amdgpu: sanitize 64bit VA manager Christian König
@ 2017-11-07 18:03   ` Alex Deucher
  1 sibling, 0 replies; 4+ messages in thread
From: Alex Deucher @ 2017-11-07 18:03 UTC (permalink / raw)
  To: Christian König; +Cc: amd-gfx list

On Sat, Nov 4, 2017 at 10:43 AM, Christian König
<ckoenig.leichtzumerken@gmail.com> wrote:
> No functional change.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

> ---
>  amdgpu/amdgpu_vamgr.c | 27 ++++++++++++++-------------
>  1 file changed, 14 insertions(+), 13 deletions(-)
>
> diff --git a/amdgpu/amdgpu_vamgr.c b/amdgpu/amdgpu_vamgr.c
> index 2b1388ed..8516b594 100644
> --- a/amdgpu/amdgpu_vamgr.c
> +++ b/amdgpu/amdgpu_vamgr.c
> @@ -34,18 +34,19 @@
>  #include "util_math.h"
>
>  int amdgpu_va_range_query(amdgpu_device_handle dev,
> -                         enum amdgpu_gpu_va_range type, uint64_t *start, uint64_t *end)
> +                         enum amdgpu_gpu_va_range type,
> +                         uint64_t *start, uint64_t *end)
>  {
> -       if (type == amdgpu_gpu_va_range_general) {
> -               *start = dev->dev_info.virtual_address_offset;
> -               *end = dev->dev_info.virtual_address_max;
> -               return 0;
> -       }
> -       return -EINVAL;
> +       if (type != amdgpu_gpu_va_range_general)
> +               return -EINVAL;
> +
> +       *start = dev->dev_info.virtual_address_offset;
> +       *end = dev->dev_info.virtual_address_max;
> +       return 0;
>  }
>
>  drm_private void amdgpu_vamgr_init(struct amdgpu_bo_va_mgr *mgr, uint64_t start,
> -                             uint64_t max, uint64_t alignment)
> +                                  uint64_t max, uint64_t alignment)
>  {
>         mgr->va_offset = start;
>         mgr->va_max = max;
> @@ -83,8 +84,8 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
>         /* first look for a hole */
>         LIST_FOR_EACH_ENTRY_SAFE(hole, n, &mgr->va_holes, list) {
>                 if (base_required) {
> -                       if(hole->offset > base_required ||
> -                               (hole->offset + hole->size) < (base_required + size))
> +                       if (hole->offset > base_required ||
> +                           (hole->offset + hole->size) < (base_required + size))
>                                 continue;
>                         waste = base_required - hole->offset;
>                         offset = base_required;
> @@ -192,9 +193,9 @@ amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size)
>                                 hole->offset = va;
>                                 hole->size += size;
>                                 /* Merge lower hole if it's adjacent */
> -                               if (next != hole
> -                                               && &next->list != &mgr->va_holes
> -                                               && (next->offset + next->size) == va) {
> +                               if (next != hole &&
> +                                   &next->list != &mgr->va_holes &&
> +                                   (next->offset + next->size) == va) {
>                                         next->size += hole->size;
>                                         list_del(&hole->list);
>                                         free(hole);
> --
> 2.11.0
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

* Re: [PATCH libdrm 2/2] amdgpu: sanitize 64bit VA manager
       [not found]     ` <20171104144331.1464-2-christian.koenig-5C7GfCeVMHo@public.gmane.org>
@ 2017-11-07 18:38       ` Alex Deucher
  0 siblings, 0 replies; 4+ messages in thread
From: Alex Deucher @ 2017-11-07 18:38 UTC (permalink / raw)
  To: Christian König; +Cc: amd-gfx list

On Sat, Nov 4, 2017 at 10:43 AM, Christian König
<ckoenig.leichtzumerken@gmail.com> wrote:
> Adding the extra reservation of the 32bit space to the 64bit manager is
> complete nonsense and just a waste of memory and CPU cycles.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

> ---
>  amdgpu/amdgpu_device.c   | 24 ++++++------------------
>  amdgpu/amdgpu_internal.h |  7 -------
>  amdgpu/amdgpu_vamgr.c    |  4 ++--
>  3 files changed, 8 insertions(+), 27 deletions(-)
>
> diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c
> index 2b31c45b..344e87ed 100644
> --- a/amdgpu/amdgpu_device.c
> +++ b/amdgpu/amdgpu_device.c
> @@ -270,22 +270,16 @@ int amdgpu_device_initialize(int fd,
>                 goto cleanup;
>         }
>
> -       amdgpu_vamgr_init(&dev->vamgr, dev->dev_info.virtual_address_offset,
> -                         dev->dev_info.virtual_address_max,
> -                         dev->dev_info.virtual_address_alignment);
> -
> +       start = dev->dev_info.virtual_address_offset;
>         max = MIN2(dev->dev_info.virtual_address_max, 0xffffffff);
> -       start = amdgpu_vamgr_find_va(&dev->vamgr,
> -                                    max - dev->dev_info.virtual_address_offset,
> -                                    dev->dev_info.virtual_address_alignment, 0);
> -       if (start > 0xffffffff) {
> -               fprintf(stderr, "%s: amdgpu_vamgr_find_va failed\n", __func__);
> -               goto free_va; /* shouldn't get here */
> -       }
> -
>         amdgpu_vamgr_init(&dev->vamgr_32, start, max,
>                           dev->dev_info.virtual_address_alignment);
>
> +       start = MAX2(dev->dev_info.virtual_address_offset, 0x100000000ULL);
> +       max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL);
> +       amdgpu_vamgr_init(&dev->vamgr, start, max,
> +                         dev->dev_info.virtual_address_alignment);
> +
>         r = amdgpu_parse_asic_ids(&dev->asic_ids);
>         if (r) {
>                 fprintf(stderr, "%s: Cannot parse ASIC IDs, 0x%x.",
> @@ -300,12 +294,6 @@ int amdgpu_device_initialize(int fd,
>
>         return 0;
>
> -free_va:
> -       r = -ENOMEM;
> -       amdgpu_vamgr_free_va(&dev->vamgr, start,
> -                            max - dev->dev_info.virtual_address_offset);
> -       amdgpu_vamgr_deinit(&dev->vamgr);
> -
>  cleanup:
>         if (dev->fd >= 0)
>                 close(dev->fd);
> diff --git a/amdgpu/amdgpu_internal.h b/amdgpu/amdgpu_internal.h
> index 56d15112..e26e5190 100644
> --- a/amdgpu/amdgpu_internal.h
> +++ b/amdgpu/amdgpu_internal.h
> @@ -148,13 +148,6 @@ drm_private void amdgpu_vamgr_init(struct amdgpu_bo_va_mgr *mgr, uint64_t start,
>
>  drm_private void amdgpu_vamgr_deinit(struct amdgpu_bo_va_mgr *mgr);
>
> -drm_private uint64_t
> -amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
> -                    uint64_t alignment, uint64_t base_required);
> -
> -drm_private void
> -amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size);
> -
>  drm_private int amdgpu_parse_asic_ids(struct amdgpu_asic_id **asic_ids);
>
>  drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev);
> diff --git a/amdgpu/amdgpu_vamgr.c b/amdgpu/amdgpu_vamgr.c
> index 8516b594..ab425ef7 100644
> --- a/amdgpu/amdgpu_vamgr.c
> +++ b/amdgpu/amdgpu_vamgr.c
> @@ -66,7 +66,7 @@ drm_private void amdgpu_vamgr_deinit(struct amdgpu_bo_va_mgr *mgr)
>         pthread_mutex_destroy(&mgr->bo_va_mutex);
>  }
>
> -drm_private uint64_t
> +static drm_private uint64_t
>  amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
>                      uint64_t alignment, uint64_t base_required)
>  {
> @@ -155,7 +155,7 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
>         return offset;
>  }
>
> -drm_private void
> +static drm_private void
>  amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size)
>  {
>         struct amdgpu_bo_va_hole *hole;
> --
> 2.11.0
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

end of thread, other threads:[~2017-11-07 18:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-04 14:43 [PATCH libdrm 1/2] amdpgu: fix coding style in amdgpu_vamgr.c Christian König
     [not found] ` <20171104144331.1464-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2017-11-04 14:43   ` [PATCH libdrm 2/2] amdgpu: sanitize 64bit VA manager Christian König
     [not found]     ` <20171104144331.1464-2-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2017-11-07 18:38       ` Alex Deucher
2017-11-07 18:03   ` [PATCH libdrm 1/2] amdpgu: fix coding style in amdgpu_vamgr.c Alex Deucher

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.