Skip to content

Commit

Permalink
drm/amdgpu: Show current compute partition on VF
Browse files Browse the repository at this point in the history
Enable sysfs node for current compute partition mode on VFs also.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Vignesh Chander <Vignesh.Chander@amd.com>
Tested-by: Vignesh Chander <Vignesh.Chander@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
  • Loading branch information
Lijo Lazar authored and Alex Deucher committed Oct 15, 2024
1 parent b3c6871 commit f8588f0
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 10 deletions.
29 changes: 27 additions & 2 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1604,21 +1604,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)
Expand Down
12 changes: 4 additions & 8 deletions drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
Original file line number Diff line number Diff line change
Expand Up @@ -1165,12 +1165,9 @@ static int gfx_v9_4_3_sw_init(struct amdgpu_ip_block *ip_block)
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);

Expand Down Expand Up @@ -1201,8 +1198,7 @@ static int gfx_v9_4_3_sw_fini(struct amdgpu_ip_block *ip_block)
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);
Expand Down

0 comments on commit f8588f0

Please sign in to comment.