Skip to content
  • Christoph Lameter's avatar
    SLUB: this_cpu: Remove slub kmem_cache fields · ff12059e
    Christoph Lameter authored
    
    
    Remove the fields in struct kmem_cache_cpu that were used to cache data from
    struct kmem_cache when they were in different cachelines. The cacheline that
    holds the per cpu array pointer now also holds these values. We can cut down
    the struct kmem_cache_cpu size to almost half.
    
    The get_freepointer() and set_freepointer() functions that used to be only
    intended for the slow path now are also useful for the hot path since access
    to the size field does not require accessing an additional cacheline anymore.
    This results in consistent use of functions for setting the freepointer of
    objects throughout SLUB.
    
    Also we initialize all possible kmem_cache_cpu structures when a slab is
    created. No need to initialize them when a processor or node comes online.
    
    Signed-off-by: default avatarChristoph Lameter <cl@linux-foundation.org>
    Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
    ff12059e