• P
    SLUB: Do not pass 8k objects through to the page allocator · 51735a7c
    Pekka Enberg 提交于
    Increase the maximum object size in SLUB so that 8k objects are not
    passed through to the page allocator anymore. The network stack uses 8k
    objects for performance critical operations.
    
    The patch is motivated by a SLAB vs. SLUB regression in the netperf
    benchmark. The problem is that the kfree(skb->head) call in
    skb_release_data() that is subject to page allocator pass-through as the
    size passed to __alloc_skb() is larger than 4 KB in this test.
    
    As explained by Yanmin Zhang:
    
      I use 2.6.29-rc2 kernel to run netperf UDP-U-4k CPU_NUM client/server
      pair loopback testing on x86-64 machines. Comparing with SLUB, SLAB's
      result is about 2.3 times of SLUB's. After applying the reverting patch,
      the result difference between SLUB and SLAB becomes 1% which we might
      consider as fluctuation.
    
    [ penberg@cs.helsinki.fi: fix oops in kmalloc() ]
    Reported-by: N"Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
    Tested-by: N"Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
    Signed-off-by: NChristoph Lameter <cl@linux-foundation.org>
    Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
    51735a7c
slub_def.h 7.2 KB