Re: [RFC V2] proc: change /proc/stat show

From: Andrew Morton
Date: Wed Mar 18 2015 - 18:07:41 EST


On Wed, 18 Mar 2015 10:35:39 +0800 "Wang, Yalin" <Yalin.Wang@xxxxxxxxxxxxxx> wrote:

> This patch change /proc/stat to show each cpu,
> we show each present cpus instead of eacn online cpu,
> because some cpus are online / offline dynamically,
> we should also show its cputime even it is offline,
> some lib will read this file to detect cpu numbers,
> we should also return the real present cpu numbers,
> not just online cpus.

/proc/cpuinfo also skips offline CPUs.

> --- a/fs/proc/stat.c
> +++ b/fs/proc/stat.c
> @@ -130,7 +130,7 @@ static int show_stat(struct seq_file *p, void *v)
> seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(guest_nice));
> seq_putc(p, '\n');
>
> - for_each_online_cpu(i) {
> + for_each_present_cpu(i) {
> /* Copy values here to work around gcc-2.95.3, gcc-2.96 */
> user = kcpustat_cpu(i).cpustat[CPUTIME_USER];
> nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];

It's a non-back-compatible userspace interface change and I don't know
what might break as a result. For example, anyone who is using
/proc/stat to find out which CPUs are online will get a surprise!


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/