• Vlastimil Babka's avatar
    lib/stackdepot: allow optional init and stack_table allocation by kvmalloc() · 2dba5eb1
    Vlastimil Babka authored
    Currently, enabling CONFIG_STACKDEPOT means its stack_table will be
    allocated from memblock, even if stack depot ends up not actually used.
    The default size of stack_table is 4MB on 32-bit, 8MB on 64-bit.
    
    This is fine for use-cases such as KASAN which is also a config option
    and has overhead on its own.  But it's an issue for functionality that
    has to be actually enabled on boot (page_owner) or depends on hardware
    (GPU drivers) and thus the memory might be wasted.  This was raised as
    an issue [1] when attempting to add stackdepot support for SLUB's debug
    object tracking functionality.  It's common to build kernels with
    CONFIG_SLUB_DEBUG and enable slub_debug on boot only when needed, or
    create only specific kmem caches with debugging for testing purposes.
    
    It would thus be more efficient if stackdepot's table was allocated only
    when actually going to be used.  This patch thus makes the allocation
    (and whole stack_depot_init() ca...
    2dba5eb1
drm_mm.c 30.5 KB