[PATCH v3 4/4] drm/amdgpu: Calculate IP specific xgmi bandwidth
Kim, Jonathan
Jonathan.Kim at amd.com
Tue Feb 25 17:46:47 UTC 2025
[Public]
> -----Original Message-----
> From: Lazar, Lijo <Lijo.Lazar at amd.com>
> Sent: Tuesday, February 25, 2025 1:46 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Zhang, Hawking <Hawking.Zhang at amd.com>; Deucher, Alexander
> <Alexander.Deucher at amd.com>; Kim, Jonathan <Jonathan.Kim at amd.com>
> Subject: [PATCH v3 4/4] drm/amdgpu: Calculate IP specific xgmi bandwidth
>
> Use IP version specific xgmi speed/width for bandwidth calculation.
>
> Signed-off-by: Lijo Lazar <lijo.lazar at amd.com>
This patch is:
Reviewed-by: Jonathan Kim <jonathan.kim at amd.com>
> ---
> v2:
> Move XGMI info init to early init phase (Jon)
> v3:
> Rebase on top of drm/amdgpu: simplify xgmi peer info calls
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++
> drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 4 +++-
> 2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index b2e9e116be44..df7cb692d8c0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2757,6 +2757,9 @@ static int amdgpu_device_ip_early_init(struct
> amdgpu_device *adev)
> if (!total)
> return -ENODEV;
>
> + if (adev->gmc.xgmi.supported)
> + amdgpu_xgmi_early_init(adev);
> +
> ip_block = amdgpu_device_ip_get_ip_block(adev,
> AMD_IP_BLOCK_TYPE_GFX);
> if (ip_block->status.valid != false)
> amdgpu_amdkfd_device_probe(adev);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> index 45566c320615..0cc42a43408e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> @@ -843,7 +843,9 @@ int amdgpu_xgmi_get_bandwidth(struct amdgpu_device
> *adev, struct amdgpu_device *
> {
> bool peer_mode = bw_mode == AMDGPU_XGMI_BW_MODE_PER_PEER;
> int unit_scale = bw_unit == AMDGPU_XGMI_BW_UNIT_MBYTES ? 1000 :
> 1;
> - int speed = 25, num_lanes = 16, num_links = !peer_mode ? 1 : -1;
> + int num_lanes = adev->gmc.xgmi.max_width;
> + int speed = adev->gmc.xgmi.max_speed;
> + int num_links = !peer_mode ? 1 : -1;
>
> if (!(min_bw && max_bw))
> return -EINVAL;
> --
> 2.25.1
More information about the amd-gfx
mailing list