• Mathias Krause's avatar
    xfrm: use a dedicated slab cache for struct xfrm_state · 565f0fa9
    Mathias Krause authored
    struct xfrm_state is rather large (768 bytes here) and therefore wastes
    quite a lot of memory as it falls into the kmalloc-1024 slab cache,
    leaving 256 bytes of unused memory per XFRM state object -- a net waste
    of 25%.
    
    Using a dedicated slab cache for struct xfrm_state reduces the level of
    internal fragmentation to a minimum.
    
    On my configuration SLUB chooses to create a slab cache covering 4
    pages holding 21 objects, resulting in an average memory waste of ~13
    bytes per object -- a net waste of only 1.6%.
    
    In my tests this led to memory savings of roughly 2.3MB for 10k XFRM
    states.
    Signed-off-by: default avatarMathias Krause <minipli@googlemail.com>
    Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    565f0fa9
xfrm_state.c 60 KB