summaryrefslogtreecommitdiffstats
path: root/tools/power/x86/turbostat/turbostat.c
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2024-11-14 08:59:44 +0100
committerLen Brown <len.brown@intel.com>2024-11-30 22:42:07 +0100
commitd071004e623b7433573019d67cba79e345d83006 (patch)
tree7967169c1edcb1494661fec9e46ed6443f8d9f00 /tools/power/x86/turbostat/turbostat.c
parenttools/power turbostat: Remove unnecessary fflush() call (diff)
downloadlinux-d071004e623b7433573019d67cba79e345d83006.tar.xz
linux-d071004e623b7433573019d67cba79e345d83006.zip
tools/power turbostat: Consolidate graphics sysfs access
Currently, there is an inconsistency in how graphics sysfs knobs are accessed: graphics residency sysfs knobs are opened and closed for each read, while graphics frequency sysfs knobs are opened once and remain open until turbostat exits. This inconsistency is confusing and adds unnecessary code complexity. Consolidate the access method by opening the sysfs files once and reusing the file pointers for subsequent accesses. This approach simplifies the code and ensures a consistent method for accessing graphics sysfs knobs. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to '')
-rw-r--r--tools/power/x86/turbostat/turbostat.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index c0596ccf92cd..e5b100b8db24 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -5764,27 +5764,24 @@ int snapshot_proc_interrupts(void)
*/
int snapshot_graphics(int idx)
{
- FILE *fp;
int retval;
+ if (gfx_info[idx].fp == NULL)
+ gfx_info[idx].fp = fopen_or_die(gfx_info[idx].path, "r");
+ else
+ rewind(gfx_info[idx].fp);
+
switch (idx) {
case GFX_rc6:
case SAM_mc6:
- fp = fopen_or_die(gfx_info[idx].path, "r");
- retval = fscanf(fp, "%lld", &gfx_info[idx].val_ull);
+ retval = fscanf(gfx_info[idx].fp, "%lld", &gfx_info[idx].val_ull);
if (retval != 1)
err(1, "rc6");
- fclose(fp);
return 0;
case GFX_MHz:
case GFX_ACTMHz:
case SAM_MHz:
case SAM_ACTMHz:
- if (gfx_info[idx].fp == NULL)
- gfx_info[idx].fp = fopen_or_die(gfx_info[idx].path, "r");
- else
- rewind(gfx_info[idx].fp);
-
retval = fscanf(gfx_info[idx].fp, "%d", &gfx_info[idx].val);
if (retval != 1)
err(1, "MHz");