Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM64: kasan: print memory assignment

This prints out the virtual memory assigned to KASan in the
boot crawl along with other memory assignments, if and only
if KASan is activated.

Example dmesg from the Juno Development board:

Memory: 1691156K/2080768K available (5465K kernel code, 444K rwdata,
2160K rodata, 340K init, 217K bss, 373228K reserved, 16384K cma-reserved)
Virtual kernel memory layout:
kasan : 0xffffff8000000000 - 0xffffff9000000000 ( 64 GB)
vmalloc : 0xffffff9000000000 - 0xffffffbdbfff0000 ( 182 GB)
vmemmap : 0xffffffbdc0000000 - 0xffffffbfc0000000 ( 8 GB maximum)
0xffffffbdc2000000 - 0xffffffbdc3fc0000 ( 31 MB actual)
fixed : 0xffffffbffabfd000 - 0xffffffbffac00000 ( 12 KB)
PCI I/O : 0xffffffbffae00000 - 0xffffffbffbe00000 ( 16 MB)
modules : 0xffffffbffc000000 - 0xffffffc000000000 ( 64 MB)
memory : 0xffffffc000000000 - 0xffffffc07f000000 ( 2032 MB)
.init : 0xffffffc0007f5000 - 0xffffffc00084a000 ( 340 KB)
.text : 0xffffffc000080000 - 0xffffffc0007f45b4 ( 7634 KB)
.data : 0xffffffc000850000 - 0xffffffc0008bf200 ( 445 KB)

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>

authored by

Linus Walleij and committed by
Catalin Marinas
ee7f881b 39d114dd

+6
+6
arch/arm64/mm/init.c
··· 298 298 #define MLK_ROUNDUP(b, t) b, t, DIV_ROUND_UP(((t) - (b)), SZ_1K) 299 299 300 300 pr_notice("Virtual kernel memory layout:\n" 301 + #ifdef CONFIG_KASAN 302 + " kasan : 0x%16lx - 0x%16lx (%6ld GB)\n" 303 + #endif 301 304 " vmalloc : 0x%16lx - 0x%16lx (%6ld GB)\n" 302 305 #ifdef CONFIG_SPARSEMEM_VMEMMAP 303 306 " vmemmap : 0x%16lx - 0x%16lx (%6ld GB maximum)\n" ··· 313 310 " .init : 0x%p" " - 0x%p" " (%6ld KB)\n" 314 311 " .text : 0x%p" " - 0x%p" " (%6ld KB)\n" 315 312 " .data : 0x%p" " - 0x%p" " (%6ld KB)\n", 313 + #ifdef CONFIG_KASAN 314 + MLG(KASAN_SHADOW_START, KASAN_SHADOW_END), 315 + #endif 316 316 MLG(VMALLOC_START, VMALLOC_END), 317 317 #ifdef CONFIG_SPARSEMEM_VMEMMAP 318 318 MLG((unsigned long)vmemmap,