|
Lines 114-121
static void _get_offspring_data(List prec_list, prec_t *ancestor, pid_t pid);
Link Here
|
| 114 |
static int _get_process_data_line(int in, prec_t *prec); |
114 |
static int _get_process_data_line(int in, prec_t *prec); |
| 115 |
static int _get_sys_interface_freq_line(uint32_t cpu, char *filename, |
115 |
static int _get_sys_interface_freq_line(uint32_t cpu, char *filename, |
| 116 |
char *sbuf); |
116 |
char *sbuf); |
| 117 |
static uint32_t _update_weighted_freq(struct jobacctinfo *jobacct, |
117 |
static uint32_t _update_freq(struct jobacctinfo *jobacct, char * sbuf); |
| 118 |
char * sbuf); |
|
|
| 119 |
|
118 |
|
| 120 |
|
119 |
|
| 121 |
/* |
120 |
/* |
|
Lines 166-176
_get_offspring_data(List prec_list, prec_t *ancestor, pid_t pid)
Link Here
|
| 166 |
return; |
165 |
return; |
| 167 |
} |
166 |
} |
| 168 |
|
167 |
|
| 169 |
/* return weighted frequency in mhz */ |
168 |
/* return frequency in mhz */ |
| 170 |
static uint32_t _update_weighted_freq(struct jobacctinfo *jobacct, |
169 |
static uint32_t _update_freq(struct jobacctinfo *jobacct, char * sbuf) |
| 171 |
char * sbuf) |
|
|
| 172 |
{ |
170 |
{ |
| 173 |
int thisfreq = 0; |
171 |
uint32_t thisfreq = 0; |
| 174 |
|
172 |
|
| 175 |
if (cpunfo_frequency) |
173 |
if (cpunfo_frequency) |
| 176 |
/* scaling not enabled */ |
174 |
/* scaling not enabled */ |
|
Lines 178-191
static uint32_t _update_weighted_freq(struct jobacctinfo *jobacct,
Link Here
|
| 178 |
else |
176 |
else |
| 179 |
sscanf(sbuf, "%d", &thisfreq); |
177 |
sscanf(sbuf, "%d", &thisfreq); |
| 180 |
|
178 |
|
| 181 |
jobacct->current_weighted_freq = |
179 |
return thisfreq; |
| 182 |
jobacct->current_weighted_freq + |
|
|
| 183 |
jobacct->this_sampled_cputime * thisfreq; |
| 184 |
if (jobacct->last_total_cputime) { |
| 185 |
return (jobacct->current_weighted_freq / |
| 186 |
jobacct->last_total_cputime); |
| 187 |
} else |
| 188 |
return thisfreq; |
| 189 |
} |
180 |
} |
| 190 |
|
181 |
|
| 191 |
static char * skipdot (char *str) |
182 |
static char * skipdot (char *str) |
|
Lines 681-687
extern void jobacct_gather_p_poll_data(
Link Here
|
| 681 |
prec->last_cpu, |
672 |
prec->last_cpu, |
| 682 |
"cpuinfo_cur_freq", sbuf); |
673 |
"cpuinfo_cur_freq", sbuf); |
| 683 |
jobacct->act_cpufreq = |
674 |
jobacct->act_cpufreq = |
| 684 |
_update_weighted_freq(jobacct, sbuf); |
675 |
_update_freq(jobacct, sbuf); |
| 685 |
debug2("Task average frequency = %u " |
676 |
debug2("Task average frequency = %u " |
| 686 |
"pid %d mem size %u %u time %u(%u+%u)", |
677 |
"pid %d mem size %u %u time %u(%u+%u)", |
| 687 |
jobacct->act_cpufreq, |
678 |
jobacct->act_cpufreq, |