Re: [PATCH RESEND 2/4] sched: /proc/sched_debug fails on very very large machines.

Andrew Morton
2013-01-16T21:56:49Z

On Tue, 15 Jan 2013 15:46:10 -0600
Nathan Zimmer <nzimmer@sgi.com> wrote:

> On systems with 4096 cores attemping to read /proc/sched_debug fails.
> We are trying to push all the data into a single kmalloc buffer.
> The issue is on these very large machines all the data will not fit in 4mb.
>
> A better solution is to not us the single_open mechanism but to provide
> our own seq_operations and treat each cpu as an individual record.
>
> The output should be identical to previous version.
>
> ...
>
> + int cpu = (unsigned long)(v - 2);

Again, the meaning of the magic offsets are unobvious to readers of
this code.

> - SEQ_printf(m, "\n");
> + if (cpu != -1)
> + print_cpu(m, cpu);

Same concerns with cpu hotplug.

> + else
> + sched_debug_header(m);
>
> return 0;
> }