[PATCH 0/4] /proc/schedstat and /proc/sched_debug fail at 4096

From: Nathan Zimmer
Date: Tue Dec 11 2012 - 14:50:28 EST


When running with 4096 cores attemping to read /proc/schedstat,
/proc/sched_debug, /proc/timer_list will fail with an ENOMEM condition.
On a sufficantly large systems the total amount of data is more then 4mb, so
it won't fit into a single buffer. The failure can also occur on smaller
systems when memory fragmentation is high.

An solution considered but not tried for sched_stat and scheddebug would to be
create an alternative mechanism to single_open but rather then calling *_show
once it calls show once per possible cpu. If someone feels strongly that is
the way to go I can give it a spin.

Nathan Zimmer (4):
procfs: /proc/sched_stat fails on very very large machines.
procfs: /proc/sched_debug fails on very very large machines.
/proc/timer_list split timer_list_show_tickdevices
Convert timer list to be a proper seq_file.

kernel/sched/debug.c | 84 +++++++++++++++++++++++++++++++++-----
kernel/sched/stats.c | 73 ++++++++++++++++++++++++---------
kernel/time/timer_list.c | 102 +++++++++++++++++++++++++++++++++++++---------
3 files changed, 209 insertions(+), 50 deletions(-)

--
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/