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:
> > +- 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.
[...]
> > +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