RE: [PATCH 1/2] drm/amdgpu: update xgmi_get_relative_phy_addr to cover single socket case

"Zhang, Hawking" <[email protected]> Fri, 7 Aug 2026 08:30:08 +0000
Newsgroups org.freedesktop.lists.amd-gfx
Message-ID <EAYPR12MB99915874299212554445399803FCD12@EAYPR12MB999158.namprd12.prod.outlook.com>
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