RE: [PATCH] drm/amd/amdgpu: fix the GPU power print error in pm info

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[AMD Official Use Only - General]

Hi Yifan,

Got it. This is the better modification.
I will resend patch.

Best Regards,
Ma,Li
-----Original Message-----
From: Zhang, Yifan <Yifan1.Zhang@xxxxxxx>
Sent: Wednesday, October 25, 2023 9:26 AM
To: Ma, Li <Li.Ma@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Feng, Kenneth <Kenneth.Feng@xxxxxxx>; StDenis, Tom <Tom.StDenis@xxxxxxx>
Subject: RE: [PATCH] drm/amd/amdgpu: fix the GPU power print error in pm info

[AMD Official Use Only - General]

I see your point. How about this one ?

--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -4290,7 +4290,7 @@ static int amdgpu_debugfs_pm_info_pp(struct seq_file *m, struct amdgpu_device *a
                seq_printf(m, "\t%u mV (VDDNB)\n", value);
        size = sizeof(uint32_t);
        if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_AVG_POWER, (void *)&query, &size))
-               seq_printf(m, "\t%u.%u W (average GPU)\n", query >> 8, query & 0xff);
+               seq_printf(m, "\t%u.%02u W (average GPU)\n", query >> 8, query & 0xff);
        size = sizeof(uint32_t);
        if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_INPUT_POWER, (void *)&query, &size))
                seq_printf(m, "\t%u.%u W (current GPU)\n", query >> 8, query & 0xff);

Best Regards,
Yifan

-----Original Message-----
From: Ma, Li <Li.Ma@xxxxxxx>
Sent: Tuesday, October 24, 2023 11:43 PM
To: Zhang, Yifan <Yifan1.Zhang@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Feng, Kenneth <Kenneth.Feng@xxxxxxx>; StDenis, Tom <Tom.StDenis@xxxxxxx>
Subject: RE: [PATCH] drm/amd/amdgpu: fix the GPU power print error in pm info

[AMD Official Use Only - General]

-----Original Message-----
From: Zhang, Yifan <Yifan1.Zhang@xxxxxxx>
Sent: Tuesday, October 24, 2023 10:29 PM
To: Ma, Li <Li.Ma@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Feng, Kenneth <Kenneth.Feng@xxxxxxx>; StDenis, Tom <Tom.StDenis@xxxxxxx>
Subject: RE: [PATCH] drm/amd/amdgpu: fix the GPU power print error in pm info

[AMD Official Use Only - General]

-----Original Message-----
From: Ma, Li <Li.Ma@xxxxxxx>
Sent: Tuesday, October 24, 2023 7:09 PM
To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Zhang, Yifan <Yifan1.Zhang@xxxxxxx>; Feng, Kenneth <Kenneth.Feng@xxxxxxx>; StDenis, Tom <Tom.StDenis@xxxxxxx>; Ma, Li <Li.Ma@xxxxxxx>
Subject: [PATCH] drm/amd/amdgpu: fix the GPU power print error in pm info

Print the digit of the fractional part individually to avoid carrying during display.

Signed-off-by: Li Ma <li.ma@xxxxxxx>
---
 drivers/gpu/drm/amd/pm/amdgpu_pm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 358bb5e485f2..cc853559cf0f 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -4290,10 +4290,10 @@ static int amdgpu_debugfs_pm_info_pp(struct seq_file *m, struct amdgpu_device *a
                seq_printf(m, "\t%u mV (VDDNB)\n", value);
        size = sizeof(uint32_t);
        if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_AVG_POWER, (void *)&query, &size))
-               seq_printf(m, "\t%u.%u W (average GPU)\n", query >> 8, query & 0xff);
+               seq_printf(m, "\t%u.%u%u W (average GPU)\n", query >> 8, (query &
+0xff) / 10, (query & 0xff) % 10);

Would you pls elaborate on this with an example ? it looks to me it makes no difference here.
Li: If the range of  (query&0xff) is [0x01,0x09], the origin output is x.1~x.9. However, it should be x.01~x.09 which is same as smu fw.

        size = sizeof(uint32_t);
        if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_INPUT_POWER, (void *)&query, &size))
-               seq_printf(m, "\t%u.%u W (current GPU)\n", query >> 8, query & 0xff);
+               seq_printf(m, "\t%u.%u%u W (current GPU)\n", query >> 8, (query &
+0xff) / 10, (query & 0xff) % 10);

Would you pls elaborate on this with an example? it looks to me it makes no difference here.
Li: If the range of  (query&0xff) is [0x01,0x09], the origin output is x.1~x.9. However, it should be x.01~x.09 which is same as smu fw.
        size = sizeof(value);
        seq_printf(m, "\n");

--
2.25.1








[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux