• Christoph Lameter's avatar
    slub: Calculate min_objects based on number of processors. · 9b2cd506
    Christoph Lameter authored
    The mininum objects per slab is calculated based on the number of processors
    that may come online.
    
    Processors    min_objects
    ---------------------------
    1             8
    2             12
    4             16
    8             20
    16            24
    32            28
    64            32
    1024          48
    4096          56
    
    The higher the number of processors the large the order sizes used for various
    slab caches will become. This has been shown to address the performance issues
    in hackbench on 16p etc.
    
    The calculation is only performed if slub_min_objects is zero (default). If one
    specifies a slub_min_objects on boot then that setting is taken.
    
    As suggested by Zhang Yanmin's performance tests on 16-core Tigerton, use the
    formula '4 * (fls(nr_cpu_ids) + 1)':
    
      ./hackbench 100 process 2000:
    
      1) 2.6.25-rc6slab: 23.5 seconds
      2) 2.6.25-rc7SLUB+slub_min_objects=20: 31 seconds
      3) 2.6.25-rc7SLUB+slub_min_objects=24: 23.5 seconds
    Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
    Signed-off-by: default avatarZhang Yanmin <yanmin.zhang@intel.com>
    Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
    9b2cd506
slub.c 105 KB