wangmingrong1
071af0c993
mm/kasan: Tag kasan and generic kasan use the same instrumentation options
...
1. Tested on QEMU, the two sockets were basically the same, and their performance was not affected. The size of the generated bin file was also the same
2. Extract global detection as a separate file, both types of Kasan support global variable out of bounds detection simultaneously
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-09-20 21:47:23 +08:00
wangmingrong1
23981cdf3d
mm/kasan: Add branch prediction and constant prediction
...
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-09-19 03:15:29 +08:00
wangmingrong1
63a371b261
mm/kasan: Change the init flag
...
predict_false(g_region_init == KASAN_INIT_VALUE))
c: e3003000 movw r3, #0
10: e3403000 movt r3, #0
if (predict_false(size == 0) ||
14: e5932000 ldr r2, [r3]
18: e30e3adf movw r3, #60127 ; 0xeadf
if KASAN_INIT_VALUE is 0xdeadcafe, run function movw will again and load twice
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-09-19 03:15:29 +08:00
wangmingrong1
b49eef7f4e
mm/kasan: The complete implementation of inline instrumentation functions
...
1. Use always_inline_function instead of inline, inline does not take effect
2. Activate Kasan acceleration by 1/7
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-09-19 03:15:29 +08:00
yinshengkai
87dc91b588
mm/kasan: add kasan watch point implementation
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-09-19 03:15:29 +08:00
yinshengkai
e154c6d071
mm/kasan: add null pointer access configuration
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-09-19 03:15:29 +08:00
yinshengkai
496e44db7f
mm: kasan supports checking 0 address access
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-09-19 03:15:29 +08:00
yinshengkai
ae7a3d7071
mm: move kasna_start/stop to hook.c
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-09-19 03:15:29 +08:00
yinshengkai
be86b03794
mm/kasan: support Disable Kasan read Panic
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-09-19 03:15:29 +08:00
yinshengkai
d365be9f2f
kasan: remove kasan report recursive check
...
PANIC never returns and abort is called to exit the process after calling assert
When BOARD_RESET_ON_ASSERT < 2, the second kasan_report will not be executed.
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-09-19 03:15:29 +08:00
wangmingrong
ae3facda53
kasan: Implementation of Kasan based on software tags.
...
Currently, only aarch64 is supported
Signed-off-by: wangmingrong <wangmingrong@xiaomi.com>
2024-09-19 03:15:29 +08:00
Xiang Xiao
9c6bed4b00
mm: Move kasan.h from mm/kasan to include/nuttx/mm
...
so other parts of the system can use it.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-09-19 03:15:29 +08:00
Xiang Xiao
47ffb9019f
mm: Support the different kasan implementation
...
Split kasan.c to incorporate label based kasan:
hook.c: Implement compiler instrumentation function
generic.c: Implementation software kasan algorithm
Signed-off-by: wangmingrong <wangmingrong1@xiaomi.com>
2024-09-19 03:15:29 +08:00