- value_t rate;
- int index;
-
- if (derives[i] == -1)
- continue;
-
- index = (cpu_num * CPU_SUBMIT_MAX) + i;
- if (value_to_rate(&rate, derives[i], &percents[index],
- DS_TYPE_DERIVE, cdt) != 0) {
- local_rates[i] = -1;
- continue;
+ if (report_percent) {
+ value_t rate;
+ int index;
+
+ if (derives[i] == -1)
+ continue;
+
+ index = (cpu_num * CPU_SUBMIT_MAX) + i;
+ if (value_to_rate(&rate, derives[i], &values[index],
+ DS_TYPE_DERIVE, cdt) != 0) {
+ local_rates[i] = -1;
+ continue;
+ }
+
+ local_rates[i] = rate.gauge;
+ cpu_total += rate.gauge;
+ if (i != CPU_SUBMIT_IDLE)
+ cpu_active += rate.gauge;
+ }
+ else {
+ cpu_total += derives[i];
+ if (i != CPU_SUBMIT_IDLE)
+ cpu_active += derives[i];