SLAB: use num_possible_cpus() in enable_cpucache()
authorEric Dumazet <[email protected]>
Sun, 6 May 2007 21:49:27 +0000 (14:49 -0700)
committerLinus Torvalds <[email protected]>
Mon, 7 May 2007 19:12:52 +0000 (12:12 -0700)
commit364fbb29a0105863d76a1f7bbc01783a4af30a75
tree065828ff023a95daa3b60abbb166e71f10336a64
parent6ce745ed39d35f9d547d00d406db2be7c6c175b3
SLAB: use num_possible_cpus() in enable_cpucache()

The existing comment in mm/slab.c is *perfect*, so I reproduce it :

         /*
          * CPU bound tasks (e.g. network routing) can exhibit cpu bound
          * allocation behaviour: Most allocs on one cpu, most free operations
          * on another cpu. For these cases, an efficient object passing between
          * cpus is necessary. This is provided by a shared array. The array
          * replaces Bonwick's magazine layer.
          * On uniprocessor, it's functionally equivalent (but less efficient)
          * to a larger limit. Thus disabled by default.
          */

As most shiped linux kernels are now compiled with CONFIG_SMP, there is no way
a preprocessor #if can detect if the machine is UP or SMP. Better to use
num_possible_cpus().

This means on UP we allocate a 'size=0 shared array', to be more efficient.

Another patch can later avoid the allocations of 'empty shared arrays', to
save some memory.

Signed-off-by: Eric Dumazet <[email protected]>
Acked-by: Pekka Enberg <[email protected]>
Acked-by: Christoph Lameter <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/slab.c