tools/power turbostat: bugfix: GFXMHz column not changing
authorLen Brown <len.brown@intel.com>
Sat, 4 Mar 2017 20:42:48 +0000 (15:42 -0500)
committerLen Brown <len.brown@intel.com>
Sat, 4 Mar 2017 20:42:48 +0000 (15:42 -0500)
turbostat displays a GFXMHz column, which comes from reading
/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz

But GFXMHz was not changing, even when a manual
cat /sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz
showed a new value.

It turns out that a rewind() on the open file is not sufficient,
fflush() (or a close/open) is needed to read fresh values.

Reported-by: Yaroslav Isakov <yaroslav.isakov@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
tools/power/x86/turbostat/turbostat.c

index 828dccd3f01eaf324bf2d3d2c674a585417cd07a..d7fb6bcb2744f2a78640d631346bcfcdcbf70fba 100644 (file)
@@ -2485,8 +2485,10 @@ int snapshot_gfx_mhz(void)
 
        if (fp == NULL)
                fp = fopen_or_die("/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz", "r");
-       else
+       else {
                rewind(fp);
+               fflush(fp);
+       }
 
        retval = fscanf(fp, "%d", &gfx_cur_mhz);
        if (retval != 1)