Skip to content

Commit 8e546bf

Browse files
zhaoleiddIngo Molnar
authored andcommitted
sched/cpuacct: Use loop to consolidate code in cpuacct_stats_show()
In cpuacct_stats_show() we currently we have copies of similar code, for each cpustat(system/user) variant. Use a loop instead to consolidate the code. This will also work better if we extend the CPUACCT_STAT_NSTATS type. Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/b0597d4224655e9f333f1a6224ed9654c7d7d36a.1466415271.git.zhaolei@cn.fujitsu.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 9acacc2 commit 8e546bf

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

kernel/sched/cpuacct.c

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -243,27 +243,26 @@ static int cpuacct_percpu_seq_show(struct seq_file *m, void *V)
243243
static int cpuacct_stats_show(struct seq_file *sf, void *v)
244244
{
245245
struct cpuacct *ca = css_ca(seq_css(sf));
246+
s64 val[CPUACCT_STAT_NSTATS];
246247
int cpu;
247-
s64 val = 0;
248+
int stat;
248249

250+
memset(val, 0, sizeof(val));
249251
for_each_possible_cpu(cpu) {
250-
struct kernel_cpustat *kcpustat = per_cpu_ptr(ca->cpustat, cpu);
251-
val += kcpustat->cpustat[CPUTIME_USER];
252-
val += kcpustat->cpustat[CPUTIME_NICE];
253-
}
254-
val = cputime64_to_clock_t(val);
255-
seq_printf(sf, "%s %lld\n", cpuacct_stat_desc[CPUACCT_STAT_USER], val);
252+
u64 *cpustat = per_cpu_ptr(ca->cpustat, cpu)->cpustat;
256253

257-
val = 0;
258-
for_each_possible_cpu(cpu) {
259-
struct kernel_cpustat *kcpustat = per_cpu_ptr(ca->cpustat, cpu);
260-
val += kcpustat->cpustat[CPUTIME_SYSTEM];
261-
val += kcpustat->cpustat[CPUTIME_IRQ];
262-
val += kcpustat->cpustat[CPUTIME_SOFTIRQ];
254+
val[CPUACCT_STAT_USER] += cpustat[CPUTIME_USER];
255+
val[CPUACCT_STAT_USER] += cpustat[CPUTIME_NICE];
256+
val[CPUACCT_STAT_SYSTEM] += cpustat[CPUTIME_SYSTEM];
257+
val[CPUACCT_STAT_SYSTEM] += cpustat[CPUTIME_IRQ];
258+
val[CPUACCT_STAT_SYSTEM] += cpustat[CPUTIME_SOFTIRQ];
263259
}
264260

265-
val = cputime64_to_clock_t(val);
266-
seq_printf(sf, "%s %lld\n", cpuacct_stat_desc[CPUACCT_STAT_SYSTEM], val);
261+
for (stat = 0; stat < CPUACCT_STAT_NSTATS; stat++) {
262+
seq_printf(sf, "%s %lld\n",
263+
cpuacct_stat_desc[stat],
264+
cputime64_to_clock_t(val[stat]));
265+
}
267266

268267
return 0;
269268
}

0 commit comments

Comments
 (0)