File tree 1 file changed +9
-3
lines changed
1 file changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -267,16 +267,22 @@ static void read_freq_stats(int cpu) {
267
267
268
268
sprintf (filename , "/sys/devices/system/cpu/cpu%d/cpufreq/stats/time_in_state" , cpu );
269
269
file = fopen (filename , "r" );
270
- if (!file ) die ("Could not open %s\n" , filename );
271
270
for (i = 0 ; i < new_cpus [cpu ].freq_count ; i ++ ) {
272
- fscanf (file , "%u %lu\n" , & new_cpus [cpu ].freqs [i ].freq ,
271
+ if (file ) {
272
+ fscanf (file , "%u %lu\n" , & new_cpus [cpu ].freqs [i ].freq ,
273
273
& new_cpus [cpu ].freqs [i ].time );
274
+ } else {
275
+ /* The CPU has been off lined for some reason */
276
+ new_cpus [cpu ].freqs [i ].freq = old_cpus [cpu ].freqs [i ].freq ;
277
+ new_cpus [cpu ].freqs [i ].time = old_cpus [cpu ].freqs [i ].time ;
278
+ }
274
279
if (aggregate_freq_stats ) {
275
280
new_total_cpu .freqs [i ].freq = new_cpus [cpu ].freqs [i ].freq ;
276
281
new_total_cpu .freqs [i ].time += new_cpus [cpu ].freqs [i ].time ;
277
282
}
278
283
}
279
- fclose (file );
284
+ if (file )
285
+ fclose (file );
280
286
}
281
287
282
288
/*
You can’t perform that action at this time.
0 commit comments