[PATCH v3 2/8] elf: Add a tunable to control use of tagged memory
Siddhesh Poyarekar
siddhesh@gotplt.org
Wed Nov 25 15:08:19 GMT 2020
On 11/23/20 9:12 PM, Richard Earnshaw via Libc-alpha wrote:
>
> Add a new glibc tunable: mtag.enable, bound to the environment variable
> _MTAG_ENABLE. This is a decimal constant in the range 0-255 but used
> as a bit-field.
>
> Bit 0 enables use of tagged memory in the malloc family of functions.
> Bit 1 enables precise faulting of tag failure on platforms where this
> can be controlled.
> Other bits are currently unused, but if set will cause memory tag
> checking for the current process to be enabled in the kernel.
> ---
> elf/dl-tunables.list | 9 +++++++++
> manual/tunables.texi | 31 +++++++++++++++++++++++++++++++
> 2 files changed, 40 insertions(+)
>
> diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list
> index e1d8225128..652cadc334 100644
> --- a/elf/dl-tunables.list
> +++ b/elf/dl-tunables.list
> @@ -141,4 +141,13 @@ glibc {
> default: 512
> }
> }
> +
> +memtag {
> + enable {
> + type: INT_32
> + minval: 0
> + maxval: 255
> + env_alias: _MTAG_ENABLE
> + }
> + }
> }
> diff --git a/manual/tunables.texi b/manual/tunables.texi
> index d72d7a5ec0..6ab432a73f 100644
> --- a/manual/tunables.texi
> +++ b/manual/tunables.texi
> @@ -36,6 +36,8 @@ their own namespace.
> * POSIX Thread Tunables:: Tunables in the POSIX thread subsystem
> * Hardware Capability Tunables:: Tunables that modify the hardware
> capabilities seen by @theglibc{}
> +* Memory Tagging Tunables:: Tunables that control the use of hardware
> + memory tagging
> @end menu
>
> @node Tunable names
> @@ -484,3 +486,32 @@ instead.
>
> This tunable is specific to i386 and x86-64.
> @end deftp
> +
> +@node Memory Tagging Tunables
> +@section Memory Tagging Tunables
> +@cindex memory tagging tunables
> +
> +@deftp {Tunable namespace} glibc.memtag
> +If the hardware supports memory tagging, these tunables can be used to
> +control the way @theglibc{} uses this feature. Currently, only AArch64
> +supports this feature.
> +@end deftp
> +
> +@deftp Tunable glibc.memtag.enable
> +This tunable takes a value between 0 and 255 and acts as a bitmask
> +that enables various capabilities.
> +
> +Bit 0 (the least significant bit) causes the malloc subsystem to allocate
> +tagged memory, with each allocation being assigned a random tag.
> +
> +Bit 1 enables precise faulting mode for tag violations on systems that
> +support deferred tag violation reporting. This may cause programs
> +to run more slowly.
> +
> +Other bits are currently reserved.
> +
> +@Theglibc{} startup code will automatically enable memory tagging
> +support in the kernel if this tunable has any non-zero value.
> +
> +The default value is @samp{0}, which disables all memory tagging.
> +@end deftp
This is OK.
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
More information about the Libc-alpha
mailing list