All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2/2] drm/amdkfd: Adjust weight to represent num_hops info when report xgmi iolink
@ 2019-04-17 18:59 Liu, Shaoyun
       [not found] ` <1555527535-4034-1-git-send-email-shaoyun.liu-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Liu, Shaoyun @ 2019-04-17 18:59 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Liu, Shaoyun

Upper level runtime need the xgmi hops info to determine the data path

Change-Id: I969b419eab125157e223e9b03980ca229c1e6af4
Signed-off-by: shaoyunl <shaoyun.liu@amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 8 ++++++--
 drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 3 ++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
index 2e7c449..d48c6c5 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
@@ -341,6 +341,7 @@ static int kfd_parse_subtype_cache(struct crat_subtype_cache *cache,
 	return 0;
 }
 
+
 /* kfd_parse_subtype_iolink - parse iolink subtypes and attach it to correct
  * topology device present in the device_list
  */
@@ -372,7 +373,7 @@ static int kfd_parse_subtype_iolink(struct crat_subtype_iolink *iolink,
 			if (props->iolink_type == CRAT_IOLINK_TYPE_PCIEXPRESS)
 				props->weight = 20;
 			else if (props->iolink_type == CRAT_IOLINK_TYPE_XGMI)
-				props->weight = 15;
+				props->weight = 15 * iolink->num_hops_xgmi;
 			else
 				props->weight = node_distance(id_from, id_to);
 
@@ -1092,6 +1093,7 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int *avail_size,
 
 static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
 			struct kfd_dev *kdev,
+			struct kfd_dev *peer_kdev,
 			struct crat_subtype_iolink *sub_type_hdr,
 			uint32_t proximity_domain_from,
 			uint32_t proximity_domain_to)
@@ -1110,6 +1112,8 @@ static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
 	sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_XGMI;
 	sub_type_hdr->proximity_domain_from = proximity_domain_from;
 	sub_type_hdr->proximity_domain_to = proximity_domain_to;
+	sub_type_hdr->num_hops_xgmi =
+		amdgpu_amdkfd_get_xgmi_hops_count(kdev->kgd, peer_kdev->kgd);
 	return 0;
 }
 
@@ -1287,7 +1291,7 @@ static int kfd_create_vcrat_image_gpu(void *pcrat_image,
 				(char *)sub_type_hdr +
 				sizeof(struct crat_subtype_iolink));
 			ret = kfd_fill_gpu_xgmi_link_to_gpu(
-				&avail_size, kdev,
+				&avail_size, kdev, peer_dev->gpu,
 				(struct crat_subtype_iolink *)sub_type_hdr,
 				proximity_domain, nid);
 			if (ret < 0)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
index 7c3f192..579835c 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
@@ -257,7 +257,7 @@ struct crat_subtype_ccompute {
 #define CRAT_IOLINK_TYPE_OTHER		16
 #define CRAT_IOLINK_TYPE_MAX		255
 
-#define CRAT_IOLINK_RESERVED_LENGTH	24
+#define CRAT_IOLINK_RESERVED_LENGTH	20
 
 struct crat_subtype_iolink {
 	uint8_t		type;
@@ -274,6 +274,7 @@ struct crat_subtype_iolink {
 	uint32_t	minimum_bandwidth_mbs;
 	uint32_t	maximum_bandwidth_mbs;
 	uint32_t	recommended_transfer_size;
+	uint32_t	num_hops_xgmi;
 	uint8_t		reserved2[CRAT_IOLINK_RESERVED_LENGTH];
 };
 
-- 
2.7.4

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

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

* Re: [PATCH 2/2] drm/amdkfd: Adjust weight to represent num_hops info when report xgmi iolink
       [not found] ` <1555527535-4034-1-git-send-email-shaoyun.liu-5C7GfCeVMHo@public.gmane.org>
@ 2019-04-22 22:11   ` Liu, Shaoyun
  2019-04-23  2:50   ` Xu, Feifei
  2019-04-23 18:15   ` Kuehling, Felix
  2 siblings, 0 replies; 5+ messages in thread
From: Liu, Shaoyun @ 2019-04-22 22:11 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Kuehling, Felix

ping .

Felix , can you help check this patch ?

Regards

shaoyun.liu

On 2019-04-17 2:59 p.m., Liu, Shaoyun wrote:
> Upper level runtime need the xgmi hops info to determine the data path
>
> Change-Id: I969b419eab125157e223e9b03980ca229c1e6af4
> Signed-off-by: shaoyunl <shaoyun.liu@amd.com>
> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 8 ++++++--
>   drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 3 ++-
>   2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> index 2e7c449..d48c6c5 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> @@ -341,6 +341,7 @@ static int kfd_parse_subtype_cache(struct crat_subtype_cache *cache,
>   	return 0;
>   }
>   
> +
>   /* kfd_parse_subtype_iolink - parse iolink subtypes and attach it to correct
>    * topology device present in the device_list
>    */
> @@ -372,7 +373,7 @@ static int kfd_parse_subtype_iolink(struct crat_subtype_iolink *iolink,
>   			if (props->iolink_type == CRAT_IOLINK_TYPE_PCIEXPRESS)
>   				props->weight = 20;
>   			else if (props->iolink_type == CRAT_IOLINK_TYPE_XGMI)
> -				props->weight = 15;
> +				props->weight = 15 * iolink->num_hops_xgmi;
>   			else
>   				props->weight = node_distance(id_from, id_to);
>   
> @@ -1092,6 +1093,7 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int *avail_size,
>   
>   static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
>   			struct kfd_dev *kdev,
> +			struct kfd_dev *peer_kdev,
>   			struct crat_subtype_iolink *sub_type_hdr,
>   			uint32_t proximity_domain_from,
>   			uint32_t proximity_domain_to)
> @@ -1110,6 +1112,8 @@ static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
>   	sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_XGMI;
>   	sub_type_hdr->proximity_domain_from = proximity_domain_from;
>   	sub_type_hdr->proximity_domain_to = proximity_domain_to;
> +	sub_type_hdr->num_hops_xgmi =
> +		amdgpu_amdkfd_get_xgmi_hops_count(kdev->kgd, peer_kdev->kgd);
>   	return 0;
>   }
>   
> @@ -1287,7 +1291,7 @@ static int kfd_create_vcrat_image_gpu(void *pcrat_image,
>   				(char *)sub_type_hdr +
>   				sizeof(struct crat_subtype_iolink));
>   			ret = kfd_fill_gpu_xgmi_link_to_gpu(
> -				&avail_size, kdev,
> +				&avail_size, kdev, peer_dev->gpu,
>   				(struct crat_subtype_iolink *)sub_type_hdr,
>   				proximity_domain, nid);
>   			if (ret < 0)
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
> index 7c3f192..579835c 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
> @@ -257,7 +257,7 @@ struct crat_subtype_ccompute {
>   #define CRAT_IOLINK_TYPE_OTHER		16
>   #define CRAT_IOLINK_TYPE_MAX		255
>   
> -#define CRAT_IOLINK_RESERVED_LENGTH	24
> +#define CRAT_IOLINK_RESERVED_LENGTH	20
>   
>   struct crat_subtype_iolink {
>   	uint8_t		type;
> @@ -274,6 +274,7 @@ struct crat_subtype_iolink {
>   	uint32_t	minimum_bandwidth_mbs;
>   	uint32_t	maximum_bandwidth_mbs;
>   	uint32_t	recommended_transfer_size;
> +	uint32_t	num_hops_xgmi;
>   	uint8_t		reserved2[CRAT_IOLINK_RESERVED_LENGTH];
>   };
>   
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

* RE: [PATCH 2/2] drm/amdkfd: Adjust weight to represent num_hops info when report xgmi iolink
       [not found] ` <1555527535-4034-1-git-send-email-shaoyun.liu-5C7GfCeVMHo@public.gmane.org>
  2019-04-22 22:11   ` Liu, Shaoyun
@ 2019-04-23  2:50   ` Xu, Feifei
  2019-04-23 18:15   ` Kuehling, Felix
  2 siblings, 0 replies; 5+ messages in thread
From: Xu, Feifei @ 2019-04-23  2:50 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Liu, Shaoyun

Acked-by: Feifei Xu <Feifei.Xu@amd.com>

-----Original Message-----
From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> On Behalf Of Liu, Shaoyun
Sent: Thursday, April 18, 2019 2:59 AM
To: amd-gfx@lists.freedesktop.org
Cc: Liu, Shaoyun <Shaoyun.Liu@amd.com>
Subject: [PATCH 2/2] drm/amdkfd: Adjust weight to represent num_hops info when report xgmi iolink

Upper level runtime need the xgmi hops info to determine the data path

Change-Id: I969b419eab125157e223e9b03980ca229c1e6af4
Signed-off-by: shaoyunl <shaoyun.liu@amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 8 ++++++--  drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 3 ++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
index 2e7c449..d48c6c5 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
@@ -341,6 +341,7 @@ static int kfd_parse_subtype_cache(struct crat_subtype_cache *cache,
 	return 0;
 }
 
+
 /* kfd_parse_subtype_iolink - parse iolink subtypes and attach it to correct
  * topology device present in the device_list
  */
@@ -372,7 +373,7 @@ static int kfd_parse_subtype_iolink(struct crat_subtype_iolink *iolink,
 			if (props->iolink_type == CRAT_IOLINK_TYPE_PCIEXPRESS)
 				props->weight = 20;
 			else if (props->iolink_type == CRAT_IOLINK_TYPE_XGMI)
-				props->weight = 15;
+				props->weight = 15 * iolink->num_hops_xgmi;
 			else
 				props->weight = node_distance(id_from, id_to);
 
@@ -1092,6 +1093,7 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int *avail_size,
 
 static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
 			struct kfd_dev *kdev,
+			struct kfd_dev *peer_kdev,
 			struct crat_subtype_iolink *sub_type_hdr,
 			uint32_t proximity_domain_from,
 			uint32_t proximity_domain_to)
@@ -1110,6 +1112,8 @@ static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
 	sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_XGMI;
 	sub_type_hdr->proximity_domain_from = proximity_domain_from;
 	sub_type_hdr->proximity_domain_to = proximity_domain_to;
+	sub_type_hdr->num_hops_xgmi =
+		amdgpu_amdkfd_get_xgmi_hops_count(kdev->kgd, peer_kdev->kgd);
 	return 0;
 }
 
@@ -1287,7 +1291,7 @@ static int kfd_create_vcrat_image_gpu(void *pcrat_image,
 				(char *)sub_type_hdr +
 				sizeof(struct crat_subtype_iolink));
 			ret = kfd_fill_gpu_xgmi_link_to_gpu(
-				&avail_size, kdev,
+				&avail_size, kdev, peer_dev->gpu,
 				(struct crat_subtype_iolink *)sub_type_hdr,
 				proximity_domain, nid);
 			if (ret < 0)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
index 7c3f192..579835c 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
@@ -257,7 +257,7 @@ struct crat_subtype_ccompute {
 #define CRAT_IOLINK_TYPE_OTHER		16
 #define CRAT_IOLINK_TYPE_MAX		255
 
-#define CRAT_IOLINK_RESERVED_LENGTH	24
+#define CRAT_IOLINK_RESERVED_LENGTH	20
 
 struct crat_subtype_iolink {
 	uint8_t		type;
@@ -274,6 +274,7 @@ struct crat_subtype_iolink {
 	uint32_t	minimum_bandwidth_mbs;
 	uint32_t	maximum_bandwidth_mbs;
 	uint32_t	recommended_transfer_size;
+	uint32_t	num_hops_xgmi;
 	uint8_t		reserved2[CRAT_IOLINK_RESERVED_LENGTH];
 };
 
--
2.7.4

_______________________________________________
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 related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] drm/amdkfd: Adjust weight to represent num_hops info when report xgmi iolink
       [not found] ` <1555527535-4034-1-git-send-email-shaoyun.liu-5C7GfCeVMHo@public.gmane.org>
  2019-04-22 22:11   ` Liu, Shaoyun
  2019-04-23  2:50   ` Xu, Feifei
@ 2019-04-23 18:15   ` Kuehling, Felix
  2 siblings, 0 replies; 5+ messages in thread
From: Kuehling, Felix @ 2019-04-23 18:15 UTC (permalink / raw)
  To: Liu, Shaoyun, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

On 2019-04-17 2:59 p.m., Liu, Shaoyun wrote:
> Upper level runtime need the xgmi hops info to determine the data path
>
> Change-Id: I969b419eab125157e223e9b03980ca229c1e6af4
> Signed-off-by: shaoyunl <shaoyun.liu@amd.com>
> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 8 ++++++--
>   drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 3 ++-
>   2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> index 2e7c449..d48c6c5 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> @@ -341,6 +341,7 @@ static int kfd_parse_subtype_cache(struct crat_subtype_cache *cache,
>   	return 0;
>   }
>   
> +
>   /* kfd_parse_subtype_iolink - parse iolink subtypes and attach it to correct
>    * topology device present in the device_list
>    */
> @@ -372,7 +373,7 @@ static int kfd_parse_subtype_iolink(struct crat_subtype_iolink *iolink,
>   			if (props->iolink_type == CRAT_IOLINK_TYPE_PCIEXPRESS)
>   				props->weight = 20;
>   			else if (props->iolink_type == CRAT_IOLINK_TYPE_XGMI)
> -				props->weight = 15;
> +				props->weight = 15 * iolink->num_hops_xgmi;
>   			else
>   				props->weight = node_distance(id_from, id_to);
>   
> @@ -1092,6 +1093,7 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int *avail_size,
>   
>   static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
>   			struct kfd_dev *kdev,
> +			struct kfd_dev *peer_kdev,
>   			struct crat_subtype_iolink *sub_type_hdr,
>   			uint32_t proximity_domain_from,
>   			uint32_t proximity_domain_to)
> @@ -1110,6 +1112,8 @@ static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
>   	sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_XGMI;
>   	sub_type_hdr->proximity_domain_from = proximity_domain_from;
>   	sub_type_hdr->proximity_domain_to = proximity_domain_to;
> +	sub_type_hdr->num_hops_xgmi =
> +		amdgpu_amdkfd_get_xgmi_hops_count(kdev->kgd, peer_kdev->kgd);
>   	return 0;
>   }
>   
> @@ -1287,7 +1291,7 @@ static int kfd_create_vcrat_image_gpu(void *pcrat_image,
>   				(char *)sub_type_hdr +
>   				sizeof(struct crat_subtype_iolink));
>   			ret = kfd_fill_gpu_xgmi_link_to_gpu(
> -				&avail_size, kdev,
> +				&avail_size, kdev, peer_dev->gpu,
>   				(struct crat_subtype_iolink *)sub_type_hdr,
>   				proximity_domain, nid);
>   			if (ret < 0)
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
> index 7c3f192..579835c 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
> @@ -257,7 +257,7 @@ struct crat_subtype_ccompute {
>   #define CRAT_IOLINK_TYPE_OTHER		16
>   #define CRAT_IOLINK_TYPE_MAX		255
>   
> -#define CRAT_IOLINK_RESERVED_LENGTH	24
> +#define CRAT_IOLINK_RESERVED_LENGTH	20
>   
>   struct crat_subtype_iolink {
>   	uint8_t		type;
> @@ -274,6 +274,7 @@ struct crat_subtype_iolink {
>   	uint32_t	minimum_bandwidth_mbs;
>   	uint32_t	maximum_bandwidth_mbs;
>   	uint32_t	recommended_transfer_size;
> +	uint32_t	num_hops_xgmi;
>   	uint8_t		reserved2[CRAT_IOLINK_RESERVED_LENGTH];

It would be safer to add num_hops_xgmi at the end of the reserved space. 
uint8_t is probably enough for the hop count. I'd also not change the 
CRAT_IOLINK_RESERVED_LENGTH. Instead this would work and make it clearer 
that we're appropriating some reserved space:

     ...
     uint8_t    reserved2[CRAT_IOLINK_RESERVED_LENGTH - 1];
     uint8_t    num_hops_xgmi;
};


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

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

* [PATCH 2/2] drm/amdkfd: Adjust weight to represent num_hops info when report xgmi iolink
@ 2019-04-23 20:21 Liu, Shaoyun
  0 siblings, 0 replies; 5+ messages in thread
From: Liu, Shaoyun @ 2019-04-23 20:21 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Liu, Shaoyun

Upper level runtime need the xgmi hops info to determine the data path

Change-Id: I969b419eab125157e223e9b03980ca229c1e6af4
Signed-off-by: shaoyunl <shaoyun.liu@amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 7 +++++--
 drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 3 ++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
index 2e7c449..1714900 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
@@ -372,7 +372,7 @@ static int kfd_parse_subtype_iolink(struct crat_subtype_iolink *iolink,
 			if (props->iolink_type == CRAT_IOLINK_TYPE_PCIEXPRESS)
 				props->weight = 20;
 			else if (props->iolink_type == CRAT_IOLINK_TYPE_XGMI)
-				props->weight = 15;
+				props->weight = 15 * iolink->num_hops_xgmi;
 			else
 				props->weight = node_distance(id_from, id_to);
 
@@ -1092,6 +1092,7 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int *avail_size,
 
 static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
 			struct kfd_dev *kdev,
+			struct kfd_dev *peer_kdev,
 			struct crat_subtype_iolink *sub_type_hdr,
 			uint32_t proximity_domain_from,
 			uint32_t proximity_domain_to)
@@ -1110,6 +1111,8 @@ static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
 	sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_XGMI;
 	sub_type_hdr->proximity_domain_from = proximity_domain_from;
 	sub_type_hdr->proximity_domain_to = proximity_domain_to;
+	sub_type_hdr->num_hops_xgmi =
+		amdgpu_amdkfd_get_xgmi_hops_count(kdev->kgd, peer_kdev->kgd);
 	return 0;
 }
 
@@ -1287,7 +1290,7 @@ static int kfd_create_vcrat_image_gpu(void *pcrat_image,
 				(char *)sub_type_hdr +
 				sizeof(struct crat_subtype_iolink));
 			ret = kfd_fill_gpu_xgmi_link_to_gpu(
-				&avail_size, kdev,
+				&avail_size, kdev, peer_dev->gpu,
 				(struct crat_subtype_iolink *)sub_type_hdr,
 				proximity_domain, nid);
 			if (ret < 0)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
index 7c3f192..d54ceeb 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
@@ -274,7 +274,8 @@ struct crat_subtype_iolink {
 	uint32_t	minimum_bandwidth_mbs;
 	uint32_t	maximum_bandwidth_mbs;
 	uint32_t	recommended_transfer_size;
-	uint8_t		reserved2[CRAT_IOLINK_RESERVED_LENGTH];
+	uint8_t		reserved2[CRAT_IOLINK_RESERVED_LENGTH - 1];
+	uint8_t		num_hops_xgmi;
 };
 
 /*
-- 
2.7.4

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

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

end of thread, other threads:[~2019-04-23 20:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-17 18:59 [PATCH 2/2] drm/amdkfd: Adjust weight to represent num_hops info when report xgmi iolink Liu, Shaoyun
     [not found] ` <1555527535-4034-1-git-send-email-shaoyun.liu-5C7GfCeVMHo@public.gmane.org>
2019-04-22 22:11   ` Liu, Shaoyun
2019-04-23  2:50   ` Xu, Feifei
2019-04-23 18:15   ` Kuehling, Felix
2019-04-23 20:21 Liu, Shaoyun

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.