View | Details | Raw Unified | Return to ticket 304 | Differences between
and this patch

Collapse All | Expand All

(-)a/src/plugins/jobacct_gather/linux/jobacct_gather_linux.c (-15 / +6 lines)
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,

Return to ticket 304