[PATCH 2/2] drm/amdgpu: Show current compute partition on VF

Chander, Vignesh Vignesh.Chander at amd.com
Tue Sep 24 13:51:03 UTC 2024


[AMD Official Use Only - AMD Internal Distribution Only]

Reviewed-by: Vignesh.Chander at amd.com
Verified-by: Vignesh.Chander at amd.com

________________________________
From: Lijo Lazar <lijo.lazar at amd.com>
Sent: Tuesday, September 24, 2024 2:02:50 AM
To: amd-gfx at lists.freedesktop.org <amd-gfx at lists.freedesktop.org>
Cc: Zhang, Hawking <Hawking.Zhang at amd.com>; Deucher, Alexander <Alexander.Deucher at amd.com>; Chander, Vignesh <Vignesh.Chander at amd.com>
Subject: [PATCH 2/2] drm/amdgpu: Show current compute partition on VF

Enable sysfs node for current compute partition mode on VFs also.

Signed-off-by: Lijo Lazar <lijo.lazar at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 29 +++++++++++++++++++++++--
 drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 12 ++++------
 2 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
index 299c4461b606..fdc9656efdd3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
@@ -1612,21 +1612,46 @@ static DEVICE_ATTR(available_compute_partition, 0444,

 int amdgpu_gfx_sysfs_init(struct amdgpu_device *adev)
 {
+       struct amdgpu_xcp_mgr *xcp_mgr = adev->xcp_mgr;
+       bool xcp_switch_supported;
         int r;

+       if (!xcp_mgr)
+               return 0;
+
+       xcp_switch_supported =
+               (xcp_mgr->funcs && xcp_mgr->funcs->switch_partition_mode);
+
+       if (!xcp_switch_supported)
+               dev_attr_current_compute_partition.attr.mode &=
+                       ~(S_IWUSR | S_IWGRP | S_IWOTH);
+
         r = device_create_file(adev->dev, &dev_attr_current_compute_partition);
         if (r)
                 return r;

-       r = device_create_file(adev->dev, &dev_attr_available_compute_partition);
+       if (xcp_switch_supported)
+               r = device_create_file(adev->dev,
+                                      &dev_attr_available_compute_partition);

         return r;
 }

 void amdgpu_gfx_sysfs_fini(struct amdgpu_device *adev)
 {
+       struct amdgpu_xcp_mgr *xcp_mgr = adev->xcp_mgr;
+       bool xcp_switch_supported;
+
+       if (!xcp_mgr)
+               return;
+
+       xcp_switch_supported =
+               (xcp_mgr->funcs && xcp_mgr->funcs->switch_partition_mode);
         device_remove_file(adev->dev, &dev_attr_current_compute_partition);
-       device_remove_file(adev->dev, &dev_attr_available_compute_partition);
+
+       if (xcp_switch_supported)
+               device_remove_file(adev->dev,
+                                  &dev_attr_available_compute_partition);
 }

 int amdgpu_gfx_sysfs_isolation_shader_init(struct amdgpu_device *adev)
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
index c100845409f7..52322ca754c5 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
@@ -1165,12 +1165,9 @@ static int gfx_v9_4_3_sw_init(void *handle)
         if (r)
                 return r;

-
-       if (!amdgpu_sriov_vf(adev)) {
-               r = amdgpu_gfx_sysfs_init(adev);
-               if (r)
-                       return r;
-       }
+       r = amdgpu_gfx_sysfs_init(adev);
+       if (r)
+               return r;

         gfx_v9_4_3_alloc_ip_dump(adev);

@@ -1201,8 +1198,7 @@ static int gfx_v9_4_3_sw_fini(void *handle)
         gfx_v9_4_3_mec_fini(adev);
         amdgpu_bo_unref(&adev->gfx.rlc.clear_state_obj);
         gfx_v9_4_3_free_microcode(adev);
-       if (!amdgpu_sriov_vf(adev))
-               amdgpu_gfx_sysfs_fini(adev);
+       amdgpu_gfx_sysfs_fini(adev);
         amdgpu_gfx_sysfs_isolation_shader_fini(adev);

         kfree(adev->gfx.ip_dump_core);
--
2.25.1

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20240924/4bf78322/attachment-0001.htm>


More information about the amd-gfx mailing list