Re: [PATCH v7 18/29] arm64: mte: Allow user control of the tag check mode via prctl()
From: Catalin Marinas <catalin.marinas@arm.com>
Date: 2020-08-05 09:24:26
Also in:
linux-arm-kernel, linux-mm
From: Catalin Marinas <catalin.marinas@arm.com>
Date: 2020-08-05 09:24:26
Also in:
linux-arm-kernel, linux-mm
On Tue, Aug 04, 2020 at 08:34:42PM +0100, Kevin Brodsky wrote:
On 15/07/2020 18:08, Catalin Marinas wrote:quoted
By default, even if PROT_MTE is set on a memory range, there is no tag check fault reporting (SIGSEGV). Introduce a set of option to the exiting prctl(PR_SET_TAGGED_ADDR_CTRL) to allow user control of the tag check fault mode: PR_MTE_TCF_NONE - no reporting (default) PR_MTE_TCF_SYNC - synchronous tag check fault reporting PR_MTE_TCF_ASYNC - asynchronous tag check fault reporting These options translate into the corresponding SCTLR_EL1.TCF0 bitfield, context-switched by the kernel. Note that uaccess done by the kernel is not checked and cannot be configured by the user.The last sentence is outdated, it should probably say that uaccess is only checked in in synchronous mode.
Thanks, I forgot about the commit log. The documentation was updated to: **Note**: Kernel accesses to the user address space (e.g. ``read()`` system call) are not checked if the user thread tag checking mode is ``PR_MTE_TCF_NONE`` or ``PR_MTE_TCF_ASYNC``. If the tag checking mode is ``PR_MTE_TCF_SYNC``, the kernel makes a best effort to check its user address accesses, however it cannot always guarantee it. -- Catalin