[PATCH v2 0/5] kasan: integrate with init_on_alloc/free

From: Andrey Konovalov
Date: Mon Mar 08 2021 - 10:56:30 EST


This patch series integrates HW_TAGS KASAN with init_on_alloc/free
by initializing memory via the same arm64 instruction that sets memory
tags.

This is expected to improve HW_TAGS KASAN performance when
init_on_alloc/free is enabled. The exact perfomance numbers are unknown
as MTE-enabled hardware doesn't exist yet.

Changes v1->v2:
- Add and use kasan_has_integrated_init() helper.
- Update comments to not explicitly mention relation between
HW_TAGS KASAN and memory init.
- Fix non initting memory with kasan=off by checking kasan_enabled()
instead of IS_ENABLED(CONFIG_KASAN_HW_TAGS).

Andrey Konovalov (5):
arm64: kasan: allow to init memory when setting tags
kasan: init memory in kasan_(un)poison for HW_TAGS
kasan, mm: integrate page_alloc init with HW_TAGS
kasan, mm: integrate slab init_on_alloc with HW_TAGS
kasan, mm: integrate slab init_on_free with HW_TAGS

arch/arm64/include/asm/memory.h | 4 +-
arch/arm64/include/asm/mte-kasan.h | 20 ++++++---
include/linux/kasan.h | 48 +++++++++++++-------
lib/test_kasan.c | 4 +-
mm/kasan/common.c | 45 +++++++++----------
mm/kasan/generic.c | 12 ++---
mm/kasan/kasan.h | 19 ++++----
mm/kasan/shadow.c | 10 ++---
mm/kasan/sw_tags.c | 2 +-
mm/mempool.c | 4 +-
mm/page_alloc.c | 37 +++++++++++-----
mm/slab.c | 43 ++++++++++--------
mm/slab.h | 17 ++++++--
mm/slub.c | 70 +++++++++++++++---------------
14 files changed, 196 insertions(+), 139 deletions(-)

--
2.30.1.766.gb4fecdf3b7-goog