cpupower: fix how "cpupower frequency-info" interprets latency
authorJacob Tanenbaum <jtanenba@redhat.com>
Tue, 1 Dec 2015 16:14:17 +0000 (17:14 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 3 Dec 2015 01:30:30 +0000 (02:30 +0100)
the intel-pstate driver does not support the ondemand governor and does not
have a valid value in
/sys/devices/system/cpu/cpu[x]/cpufreq/cpuinfo_transition_latency. The
intel-pstate driver sets cpuinfo_transition_latency to CPUFREQ_ETERNAL (-1),
the value written into cpuinfo_transition_latency is defind as an unsigned
int so checking the read value against max unsigned int will determine if the
value is valid.

Signed-off-by: Jacob Tanenbaum <jtanenba@redhat.com>
Signed-off-by: Thomas Renninger <trenn@suse.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
tools/power/cpupower/utils/cpufreq-info.c

index c13bc8c..8f3f5bb 100644 (file)
@@ -434,8 +434,8 @@ static int get_latency(unsigned int cpu, unsigned int human)
        unsigned long latency = cpufreq_get_transition_latency(cpu);
 
        printf(_("  maximum transition latency: "));
-       if (!latency) {
-               printf(_(" Cannot determine latency.\n"));
+       if (!latency || latency == UINT_MAX) {
+               printf(_(" Cannot determine or is not supported.\n"));
                return -EINVAL;
        }