[PATCH] schedule_on_each_cpu(): reduce kmalloc() size
authorAndrew Morton <akpm@osdl.org>
Sun, 25 Jun 2006 12:47:49 +0000 (05:47 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 25 Jun 2006 17:01:07 +0000 (10:01 -0700)
commitb61367732fc273977cc3fb85c272ce1a7bb1f533
tree92aa6fc7f58b65f322f32612741c64347bc57152
parent232acbcf5304c29f5bb03b0dddeaefd0f98ef45e
[PATCH] schedule_on_each_cpu(): reduce kmalloc() size

schedule_on_each_cpu() presently does a large kmalloc - 96 kbytes on 1024 CPU
64-bit.

Rework it so that we do one 8192-byte allocation and then a pile of tiny ones,
via alloc_percpu().  This has a much higher chance of success (100% in the
current VM).

This also has the effect of reducing the memory requirements from NR_CPUS*n to
num_possible_cpus()*n.

Cc: Christoph Lameter <clameter@engr.sgi.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/workqueue.c