• Bharata B Rao's avatar
    mm/slub: let number of online CPUs determine the slub page order · 045ab8c9
    Bharata B Rao authored
    The page order of the slab that gets chosen for a given slab cache depends
    on the number of objects that can be fit in the slab while meeting other
    requirements.  We start with a value of minimum objects based on
    nr_cpu_ids that is driven by possible number of CPUs and hence could be
    higher than the actual number of CPUs present in the system.  This leads
    to calculate_order() chosing a page order that is on the higher side
    leading to increased slab memory consumption on systems that have bigger
    page sizes.
    
    Hence rely on the number of online CPUs when determining the mininum
    objects, thereby increasing the chances of chosing a lower conservative
    page order for the slab.
    
    Vlastimil said:
      "Ideally, we would react to hotplug events and update existing caches
       accordingly. But for that, recalculation of order for existing caches
       would have to be made safe, while not affecting hot paths. We have
       removed the sysfs interface with 32a6f409 ("mm, slub: remove
       runtime allocation order changes") as it didn't seem easy and worth
       the trouble.
    
       In case somebody wants to start with a large order right from the
       boot because they know they will hotplug lots of cpus later, they can
       use slub_min_objects= boot param to override this heuristic. So in
       case this change regresses somebody's performance, there's a way
       around it and thus the risk is low IMHO"
    
    Link: https://lkml.kernel.org/r/20201118082759.1413056-1-bharata@linux.ibm.comSigned-off-by: default avatarBharata B Rao <bharata@linux.ibm.com>
    Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Acked-by: default avatarRoman Gushchin <guro@fb.com>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    045ab8c9
slub.c 140 KB