mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 17:41:50 +00:00
kasan: docs: update HW_TAGS implementation details section
Update the "Implementation details" section for HW_TAGS KASAN: - Punctuation, readability, and other minor clean-ups. Link: https://lkml.kernel.org/r/ee2caf4c138cc1fd239822c2abefd5af6c057744.1615559068.git.andreyknvl@google.com Signed-off-by: Andrey Konovalov <andreyknvl@google.com> Reviewed-by: Marco Elver <elver@google.com> Cc: Alexander Potapenko <glider@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Dmitry Vyukov <dvyukov@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a6c18d4e76
commit
bb48675e5a
1 changed files with 13 additions and 13 deletions
|
@ -279,35 +279,35 @@ memory.
|
||||||
Hardware tag-based KASAN
|
Hardware tag-based KASAN
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Hardware tag-based KASAN is similar to the software mode in concept, but uses
|
Hardware tag-based KASAN is similar to the software mode in concept but uses
|
||||||
hardware memory tagging support instead of compiler instrumentation and
|
hardware memory tagging support instead of compiler instrumentation and
|
||||||
shadow memory.
|
shadow memory.
|
||||||
|
|
||||||
Hardware tag-based KASAN is currently only implemented for arm64 architecture
|
Hardware tag-based KASAN is currently only implemented for arm64 architecture
|
||||||
and based on both arm64 Memory Tagging Extension (MTE) introduced in ARMv8.5
|
and based on both arm64 Memory Tagging Extension (MTE) introduced in ARMv8.5
|
||||||
Instruction Set Architecture, and Top Byte Ignore (TBI).
|
Instruction Set Architecture and Top Byte Ignore (TBI).
|
||||||
|
|
||||||
Special arm64 instructions are used to assign memory tags for each allocation.
|
Special arm64 instructions are used to assign memory tags for each allocation.
|
||||||
Same tags are assigned to pointers to those allocations. On every memory
|
Same tags are assigned to pointers to those allocations. On every memory
|
||||||
access, hardware makes sure that tag of the memory that is being accessed is
|
access, hardware makes sure that the tag of the memory that is being accessed is
|
||||||
equal to tag of the pointer that is used to access this memory. In case of a
|
equal to the tag of the pointer that is used to access this memory. In case of a
|
||||||
tag mismatch a fault is generated and a report is printed.
|
tag mismatch, a fault is generated, and a report is printed.
|
||||||
|
|
||||||
Hardware tag-based KASAN uses 0xFF as a match-all pointer tag (accesses through
|
Hardware tag-based KASAN uses 0xFF as a match-all pointer tag (accesses through
|
||||||
pointers with 0xFF pointer tag aren't checked). The value 0xFE is currently
|
pointers with the 0xFF pointer tag are not checked). The value 0xFE is currently
|
||||||
reserved to tag freed memory regions.
|
reserved to tag freed memory regions.
|
||||||
|
|
||||||
Hardware tag-based KASAN currently only supports tagging of
|
Hardware tag-based KASAN currently only supports tagging of slab and page_alloc
|
||||||
kmem_cache_alloc/kmalloc and page_alloc memory.
|
memory.
|
||||||
|
|
||||||
If the hardware doesn't support MTE (pre ARMv8.5), hardware tag-based KASAN
|
If the hardware does not support MTE (pre ARMv8.5), hardware tag-based KASAN
|
||||||
won't be enabled. In this case all boot parameters are ignored.
|
will not be enabled. In this case, all KASAN boot parameters are ignored.
|
||||||
|
|
||||||
Note, that enabling CONFIG_KASAN_HW_TAGS always results in in-kernel TBI being
|
Note that enabling CONFIG_KASAN_HW_TAGS always results in in-kernel TBI being
|
||||||
enabled. Even when kasan.mode=off is provided, or when the hardware doesn't
|
enabled. Even when ``kasan.mode=off`` is provided or when the hardware does not
|
||||||
support MTE (but supports TBI).
|
support MTE (but supports TBI).
|
||||||
|
|
||||||
Hardware tag-based KASAN only reports the first found bug. After that MTE tag
|
Hardware tag-based KASAN only reports the first found bug. After that, MTE tag
|
||||||
checking gets disabled.
|
checking gets disabled.
|
||||||
|
|
||||||
Shadow memory
|
Shadow memory
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue