• Juntong Deng's avatar
    kasan: record and report more information · 5d4c6ac9
    Juntong Deng authored
    Record and report more information to help us find the cause of the bug
    and to help us correlate the error with other system events.
    
    This patch adds recording and showing CPU number and timestamp at
    allocation and free (controlled by CONFIG_KASAN_EXTRA_INFO).  The
    timestamps in the report use the same format and source as printk.
    
    Error occurrence timestamp is already implicit in the printk log, and CPU
    number is already shown by dump_stack_lvl, so there is no need to add it.
    
    In order to record CPU number and timestamp at allocation and free,
    corresponding members need to be added to the relevant data structures,
    which will lead to increased memory consumption.
    
    In Generic KASAN, members are added to struct kasan_track.  Since in most
    cases, alloc meta is stored in the redzone and free meta is stored in the
    object or the redzone, memory consumption will not increase much.
    
    In SW_TAGS KASAN and HW_TAGS KASAN, members are added to struct
    kasan_stack_ring_entry.  Memory consumption increases as the size of
    struct kasan_stack_ring_entry increases (this part of the memory is
    allocated by memblock), but since this is configurable, it is up to the
    user to choose.
    
    Link: https://lkml.kernel.org/r/VI1P193MB0752BD991325D10E4AB1913599BDA@VI1P193MB0752.EURP193.PROD.OUTLOOK.COMSigned-off-by: default avatarJuntong Deng <juntong.deng@outlook.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    5d4c6ac9
kasan.h 19.1 KB