AMD General

To be accurate, I meant multiple-GPU platforms.

Regards,
Hawking

-----Original Message-----
From: amd-gfx <[email protected]> On Behalf Of Zhang, 
Hawking
Sent: Friday, August 7, 2026 4:29 PM
To: Zhou1, Tao <[email protected]>; [email protected]
Cc: Zhou1, Tao <[email protected]>
Subject: RE: [PATCH 1/2] drm/amdgpu: update xgmi_get_relative_phy_addr to cover 
single socket case

AMD General

Shouldn't amdgpu_xgmi_get_relative_phy_addr only be invoked on multi-socket 
platforms?

I'm trying to understand why this function is needed even on single-socket 
platforms.

Regards,
Hawking

-----Original Message-----
From: amd-gfx <[email protected]> On Behalf Of Tao Zhou
Sent: Friday, August 7, 2026 2:43 PM
To: [email protected]
Cc: Zhou1, Tao <[email protected]>
Subject: [PATCH 1/2] drm/amdgpu: update xgmi_get_relative_phy_addr to cover 
single socket case

For single socket, the xgmi offset for memory address is 0.

Signed-off-by: Tao Zhou <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
index c180c35e3622..9df32785f365 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
@@ -1249,7 +1249,11 @@ uint64_t amdgpu_xgmi_get_relative_phy_addr(struct 
amdgpu_device *adev,
                                           uint64_t addr)  {
        struct amdgpu_xgmi *xgmi = &adev->gmc.xgmi;
-       return (addr + xgmi->physical_node_id * xgmi->node_segment_size);
+
+       if (xgmi->num_physical_nodes > 1)
+               return (addr + xgmi->physical_node_id * 
xgmi->node_segment_size);
+       else
+               return addr;
 }

 static void pcs_clear_status(struct amdgpu_device *adev, uint32_t 
pcs_status_reg)
--
2.34.1

Reply via email to