• Andrey Konovalov's avatar
    kasan, mm: integrate slab init_on_alloc with HW_TAGS · da844b78
    Andrey Konovalov authored
    This change uses the previously added memory initialization feature of
    HW_TAGS KASAN routines for slab memory when init_on_alloc is enabled.
    
    With this change, memory initialization memset() is no longer called when
    both HW_TAGS KASAN and init_on_alloc are enabled.  Instead, memory is
    initialized in KASAN runtime.
    
    The memory initialization memset() is moved into slab_post_alloc_hook()
    that currently directly follows the initialization loop.  A new argument
    is added to slab_post_alloc_hook() that indicates whether to initialize
    the memory or not.
    
    To avoid discrepancies with which memory gets initialized that can be
    caused by future changes, both KASAN hook and initialization memset() are
    put together and a warning comment is added.
    
    Combining setting allocation tags with memory initialization improves
    HW_TAGS KASAN performance when init_on_alloc is enabled.
    
    Link: https://lkml.kernel.org/r/c1292aeb5d519da221ec74a0684a949b027d7720.1615296150.git.andreyknvl@google.comSigned-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
    Reviewed-by: default avatarMarco Elver <elver@google.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Branislav Rankov <Branislav.Rankov@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Evgenii Stepanov <eugenis@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Kevin Brodsky <kevin.brodsky@arm.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Peter Collingbourne <pcc@google.com>
    Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    da844b78
slub.c 144 KB