• Andrey Konovalov's avatar
    kasan, mm: don't save alloc stacks twice · 92850134
    Andrey Konovalov authored
    Patch series "kasan: optimizations and fixes for HW_TAGS", v4.
    
    This patchset makes the HW_TAGS mode more efficient, mostly by reworking
    poisoning approaches and simplifying/inlining some internal helpers.
    
    With this change, the overhead of HW_TAGS annotations excluding setting
    and checking memory tags is ~3%.  The performance impact caused by tags
    will be unknown until we have hardware that supports MTE.
    
    As a side-effect, this patchset speeds up generic KASAN by ~15%.
    
    This patch (of 13):
    
    Currently KASAN saves allocation stacks in both kasan_slab_alloc() and
    kasan_kmalloc() annotations.  This patch changes KASAN to save allocation
    stacks for slab objects from kmalloc caches in kasan_kmalloc() only, and
    stacks for other slab objects in kasan_slab_alloc() only.
    
    This change requires ____kasan_kmalloc() knowing whether the object
    belongs to a kmalloc cache.  This is implemented by adding a flag field to
    the kasan_info structure.  That flag is only set for kmalloc caches via a
    new kasan_cache_create_kmalloc() annotation.
    
    Link: https://lkml.kernel.org/r/cover.1612546384.git.andreyknvl@google.com
    Link: https://lkml.kernel.org/r/7c673ebca8d00f40a7ad6f04ab9a2bddeeae2097.1612546384.git.andreyknvl@google.comSigned-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
    Reviewed-by: default avatarMarco Elver <elver@google.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Peter Collingbourne <pcc@google.com>
    Cc: Evgenii Stepanov <eugenis@google.com>
    Cc: Branislav Rankov <Branislav.Rankov@arm.com>
    Cc: Kevin Brodsky <kevin.brodsky@arm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    92850134
slab_common.c 31.6 KB