From: Vincenzo Frascino <vincenzo.frascino@arm.com> To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com Cc: vincenzo.frascino@arm.com, Andrew Morton <akpm@linux-foundation.org>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, Dmitry Vyukov <dvyukov@google.com>, Andrey Ryabinin <aryabinin@virtuozzo.com>, Alexander Potapenko <glider@google.com>, Marco Elver <elver@google.com>, Evgenii Stepanov <eugenis@google.com>, Branislav Rankov <Branislav.Rankov@arm.com>, Andrey Konovalov <andreyknvl@gmail.com>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Subject: [PATCH 0/5] arm64: ARMv8.7-A: MTE: Add asymm mode support Date: Mon, 13 Sep 2021 09:14:19 +0100 [thread overview] Message-ID: <20210913081424.48613-1-vincenzo.frascino@arm.com> (raw) This series implements the asymmetric mode support for ARMv8.7-A Memory Tagging Extension (MTE), which is a debugging feature that allows to detect with the help of the architecture the C and C++ programmatic memory errors like buffer overflow, use-after-free, use-after-return, etc. MTE is built on top of the AArch64 v8.0 virtual address tagging TBI (Top Byte Ignore) feature and allows a task to set a 4 bit tag on any subset of its address space that is multiple of a 16 bytes granule. MTE is based on a lock-key mechanism where the lock is the tag associated to the physical memory and the key is the tag associated to the virtual address. When MTE is enabled and tags are set for ranges of address space of a task, the PE will compare the tag related to the physical memory with the tag related to the virtual address (tag check operation). Access to the memory is granted only if the two tags match. In case of mismatch the PE will raise an exception. When asymmetric mode is present, the CPU triggers a fault on a tag mismatch during a load operation and asynchronously updates a register when a tag mismatch is detected during a store operation. The series is based on linux-v5.15-rc1. To simplify the testing a tree with the new patches on top has been made available at [1]. [1] https://git.gitlab.arm.com/linux-arm/linux-vf.git mte/v1.asymm Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Alexander Potapenko <glider@google.com> Cc: Marco Elver <elver@google.com> Cc: Evgenii Stepanov <eugenis@google.com> Cc: Branislav Rankov <Branislav.Rankov@arm.com> Cc: Andrey Konovalov <andreyknvl@gmail.com> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Vincenzo Frascino (5): kasan: Remove duplicate of kasan_flag_async arm64: mte: Bitfield definitions for Asymm MTE arm64: mte: CPU feature detection for Asymm MTE arm64: mte: Add asymmetric mode support kasan: Extend KASAN mode kernel parameter Documentation/dev-tools/kasan.rst | 10 ++++++++-- arch/arm64/include/asm/memory.h | 1 + arch/arm64/include/asm/mte-kasan.h | 5 +++++ arch/arm64/include/asm/sysreg.h | 3 +++ arch/arm64/kernel/cpufeature.c | 10 ++++++++++ arch/arm64/kernel/mte.c | 26 ++++++++++++++++++++++++++ arch/arm64/tools/cpucaps | 1 + mm/kasan/hw_tags.c | 27 ++++++++++++++++++++++----- mm/kasan/kasan.h | 7 +++++-- 9 files changed, 81 insertions(+), 9 deletions(-) -- 2.33.0
WARNING: multiple messages have this Message-ID (diff)
From: Vincenzo Frascino <vincenzo.frascino@arm.com> To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com Cc: vincenzo.frascino@arm.com, Andrew Morton <akpm@linux-foundation.org>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, Dmitry Vyukov <dvyukov@google.com>, Andrey Ryabinin <aryabinin@virtuozzo.com>, Alexander Potapenko <glider@google.com>, Marco Elver <elver@google.com>, Evgenii Stepanov <eugenis@google.com>, Branislav Rankov <Branislav.Rankov@arm.com>, Andrey Konovalov <andreyknvl@gmail.com>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Subject: [PATCH 0/5] arm64: ARMv8.7-A: MTE: Add asymm mode support Date: Mon, 13 Sep 2021 09:14:19 +0100 [thread overview] Message-ID: <20210913081424.48613-1-vincenzo.frascino@arm.com> (raw) This series implements the asymmetric mode support for ARMv8.7-A Memory Tagging Extension (MTE), which is a debugging feature that allows to detect with the help of the architecture the C and C++ programmatic memory errors like buffer overflow, use-after-free, use-after-return, etc. MTE is built on top of the AArch64 v8.0 virtual address tagging TBI (Top Byte Ignore) feature and allows a task to set a 4 bit tag on any subset of its address space that is multiple of a 16 bytes granule. MTE is based on a lock-key mechanism where the lock is the tag associated to the physical memory and the key is the tag associated to the virtual address. When MTE is enabled and tags are set for ranges of address space of a task, the PE will compare the tag related to the physical memory with the tag related to the virtual address (tag check operation). Access to the memory is granted only if the two tags match. In case of mismatch the PE will raise an exception. When asymmetric mode is present, the CPU triggers a fault on a tag mismatch during a load operation and asynchronously updates a register when a tag mismatch is detected during a store operation. The series is based on linux-v5.15-rc1. To simplify the testing a tree with the new patches on top has been made available at [1]. [1] https://git.gitlab.arm.com/linux-arm/linux-vf.git mte/v1.asymm Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Alexander Potapenko <glider@google.com> Cc: Marco Elver <elver@google.com> Cc: Evgenii Stepanov <eugenis@google.com> Cc: Branislav Rankov <Branislav.Rankov@arm.com> Cc: Andrey Konovalov <andreyknvl@gmail.com> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Vincenzo Frascino (5): kasan: Remove duplicate of kasan_flag_async arm64: mte: Bitfield definitions for Asymm MTE arm64: mte: CPU feature detection for Asymm MTE arm64: mte: Add asymmetric mode support kasan: Extend KASAN mode kernel parameter Documentation/dev-tools/kasan.rst | 10 ++++++++-- arch/arm64/include/asm/memory.h | 1 + arch/arm64/include/asm/mte-kasan.h | 5 +++++ arch/arm64/include/asm/sysreg.h | 3 +++ arch/arm64/kernel/cpufeature.c | 10 ++++++++++ arch/arm64/kernel/mte.c | 26 ++++++++++++++++++++++++++ arch/arm64/tools/cpucaps | 1 + mm/kasan/hw_tags.c | 27 ++++++++++++++++++++++----- mm/kasan/kasan.h | 7 +++++-- 9 files changed, 81 insertions(+), 9 deletions(-) -- 2.33.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2021-09-13 8:14 UTC|newest] Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-13 8:14 Vincenzo Frascino [this message] 2021-09-13 8:14 ` [PATCH 0/5] arm64: ARMv8.7-A: MTE: Add asymm mode support Vincenzo Frascino 2021-09-13 8:14 ` [PATCH 1/5] kasan: Remove duplicate of kasan_flag_async Vincenzo Frascino 2021-09-13 8:14 ` Vincenzo Frascino 2021-09-20 15:31 ` Catalin Marinas 2021-09-20 15:31 ` Catalin Marinas 2021-10-03 17:12 ` Andrey Konovalov 2021-10-03 17:12 ` Andrey Konovalov 2021-09-13 8:14 ` [PATCH 2/5] arm64: mte: Bitfield definitions for Asymm MTE Vincenzo Frascino 2021-09-13 8:14 ` Vincenzo Frascino 2021-09-20 15:31 ` Catalin Marinas 2021-09-20 15:31 ` Catalin Marinas 2021-09-13 8:14 ` [PATCH 3/5] arm64: mte: CPU feature detection " Vincenzo Frascino 2021-09-13 8:14 ` Vincenzo Frascino 2021-09-20 15:31 ` Catalin Marinas 2021-09-20 15:31 ` Catalin Marinas 2021-09-20 15:41 ` Suzuki K Poulose 2021-09-20 15:41 ` Suzuki K Poulose 2021-09-13 8:14 ` [PATCH 4/5] arm64: mte: Add asymmetric mode support Vincenzo Frascino 2021-09-13 8:14 ` Vincenzo Frascino 2021-09-20 15:31 ` Catalin Marinas 2021-09-20 15:31 ` Catalin Marinas 2021-10-03 17:15 ` Andrey Konovalov 2021-10-03 17:15 ` Andrey Konovalov 2021-10-04 15:39 ` Vincenzo Frascino 2021-10-04 15:39 ` Vincenzo Frascino 2021-09-13 8:14 ` [PATCH 5/5] kasan: Extend KASAN mode kernel parameter Vincenzo Frascino 2021-09-13 8:14 ` Vincenzo Frascino 2021-09-16 10:43 ` Marco Elver 2021-09-16 10:43 ` Marco Elver 2021-09-20 7:46 ` Vincenzo Frascino 2021-09-20 7:46 ` Vincenzo Frascino 2021-10-03 17:16 ` Andrey Konovalov 2021-10-03 17:16 ` Andrey Konovalov 2021-10-04 15:45 ` Vincenzo Frascino 2021-10-04 15:45 ` Vincenzo Frascino 2021-09-20 15:32 ` Catalin Marinas 2021-09-20 15:32 ` Catalin Marinas 2021-09-20 21:29 ` [PATCH 0/5] arm64: ARMv8.7-A: MTE: Add asymm mode support Peter Collingbourne 2021-09-20 21:29 ` Peter Collingbourne 2021-09-21 7:03 ` Vincenzo Frascino 2021-09-21 7:03 ` Vincenzo Frascino 2021-09-29 15:49 ` Will Deacon 2021-09-29 15:49 ` Will Deacon 2021-10-04 15:16 ` Vincenzo Frascino 2021-10-04 15:16 ` Vincenzo Frascino
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210913081424.48613-1-vincenzo.frascino@arm.com \ --to=vincenzo.frascino@arm.com \ --cc=Branislav.Rankov@arm.com \ --cc=akpm@linux-foundation.org \ --cc=andreyknvl@gmail.com \ --cc=aryabinin@virtuozzo.com \ --cc=catalin.marinas@arm.com \ --cc=dvyukov@google.com \ --cc=elver@google.com \ --cc=eugenis@google.com \ --cc=glider@google.com \ --cc=kasan-dev@googlegroups.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.