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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/