From: Thierry Strudel Date: Tue, 13 Oct 2015 22:10:32 +0000 (-0700) Subject: cpustats: do not die in case a CPU is offlined X-Git-Tag: android-x86-7.1-r1~69 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=e363c2db056fefd6b45d77a36a39de8fa85dad7b;p=android-x86%2Fsystem-extras.git cpustats: do not die in case a CPU is offlined Change-Id: I05700266f1c7584ff51557b3e559654045379e87 --- diff --git a/cpustats/cpustats.c b/cpustats/cpustats.c index 32d75b2b..0042caf5 100644 --- a/cpustats/cpustats.c +++ b/cpustats/cpustats.c @@ -267,16 +267,22 @@ static void read_freq_stats(int cpu) { sprintf(filename, "/sys/devices/system/cpu/cpu%d/cpufreq/stats/time_in_state", cpu); file = fopen(filename, "r"); - if (!file) die("Could not open %s\n", filename); for (i = 0; i < new_cpus[cpu].freq_count; i++) { - fscanf(file, "%u %lu\n", &new_cpus[cpu].freqs[i].freq, + if (file) { + fscanf(file, "%u %lu\n", &new_cpus[cpu].freqs[i].freq, &new_cpus[cpu].freqs[i].time); + } else { + /* The CPU has been off lined for some reason */ + new_cpus[cpu].freqs[i].freq = old_cpus[cpu].freqs[i].freq; + new_cpus[cpu].freqs[i].time = old_cpus[cpu].freqs[i].time; + } if (aggregate_freq_stats) { new_total_cpu.freqs[i].freq = new_cpus[cpu].freqs[i].freq; new_total_cpu.freqs[i].time += new_cpus[cpu].freqs[i].time; } } - fclose(file); + if (file) + fclose(file); } /*