1. 12 Dec, 2023 39 commits
  2. 11 Dec, 2023 1 commit
    • 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