Re: [PATCH v7 1/2] arm64: Define Documentation/arm64/tagged-address-abi.rst
From: Dave Martin <Dave.Martin@arm.com>
Date: 2019-08-08 16:27:07
Also in:
linux-arch, linux-arm-kernel
On Wed, Aug 07, 2019 at 01:38:16PM -0700, Dave Hansen wrote: [Random comments below on a couple of points]
On 8/7/19 8:53 AM, Catalin Marinas wrote:quoted
+- mmap() done by the process itself (or its parent), where either: + + - flags have the **MAP_ANONYMOUS** bit set + - the file descriptor refers to a regular file (including those returned + by memfd_create()) or **/dev/zero**What's a "regular file"? ;)
A file, as distinct from device nodes, sockets, symlinks etc.
I think this is fairly standard UNIX terminology, even though it sounds
vague:
From glibc's <bits/stat.h>:
#define __S_IFREG 0100000 /* Regular file. */
Or for POSIX test (a.k.a. "[")
-f file
True if file exists and is a regular file.
Using memfd_create() or opening /dev/zero doesn't yield a regular file
though, so perhaps those should be a separate bullet.
[...]
quoted
+The AArch64 Tagged Address ABI is an opt-in feature and an application can +control it via **prctl()** as follows: + +- **PR_SET_TAGGED_ADDR_CTRL**: enable or disable the AArch64 Tagged Address + ABI for the calling process. + + The (unsigned int) arg2 argument is a bit mask describing the control mode + used: + + - **PR_TAGGED_ADDR_ENABLE**: enable AArch64 Tagged Address ABI. Default + status is disabled. + + The arguments arg3, arg4, and arg5 are ignored.For previous prctl()'s, we've found that it's best to require that the unused arguments be 0. Without that, apps are free to put garbage there, which makes extending the prctl to use other arguments impossible in the future.
Because arg2 is already a mask of flags with some flags unallocated, we can add a new flag for ABI extensions. If arg3 is used someday, it may or may not be natural for 0 to mean "default". Enabling this argument with an explicit flag in arg2 may be cleaner than mangling the semantics of arg3 so that 0 can have the right meaning. Avoiding redundant 0 arguments also allows userspace to take advantage of the glibc's variadic prototype for prctl() for example. Not a huge deal, but that was my rationale anyway.
Also, shouldn't this be converted over to an arch_prctl()?
Most arch-specific prctls seem to use prctl(), and arm64 already has a few there. arch_prctl() is x86-specific. I don't know the history. [...] Cheers ---Dave