Thread (19 messages) 19 messages, 4 authors, 2015-12-11

Re: [PATCH 26/34] mm: implement new mprotect_key() system call

From: Michael Kerrisk (man-pages) <hidden>
Date: 2015-12-09 16:45:26
Also in: linux-mm, lkml

Hi Dave,

On 9 December 2015 at 16:48, Dave Hansen [off-list ref] wrote:
Hi Michael,

Thanks for all the comments!  I'll fix most of it when I post a new
version of the manpage, but I have a few general questions.

On 12/09/2015 03:08 AM, Michael Kerrisk (man-pages) wrote:
quoted
quoted
+is the protection or storage key to assign to the memory.
Why "protection or storage key" here? This phrasing seems a
little ambiguous to me, given that we also have a 'prot'
argument.  I think it would be clearer just to say
"protection key". But maybe I'm missing something.
x86 calls it a "protection key" while powerpc calls it a "storage key".
 They're called "protection keys" consistently inside the kernel.

Should we just stick to one name in the manpages?
Yes. But perhaps you could note the alternate name in the pkey(7) page.
quoted
* A general overview of why this functionality is useful.
Any preference on a central spot to do the general overview?  Does it go
in one of the manpages I'm already modifying, or a new one?
How about we add one more page, pkey(7) that gives the overview and
also summarizes the APIs.
quoted
* A note on which architectures support/will support
  this functionality.
x86 only for now.  We might get powerpc support down the road somewhere.
Supported architectures can be listed in pkey(7).
quoted
* Explanation of what a protection domain is.
A protection domain is a unique view of memory and is represented by the
value in the PKRU register.
Out something about this in pkey(7), but explain what you mean by a
"unique view of memory".
quoted
* Explanation of how a process (thread?) changes its
  protection domain.
Changing protection domains is done by pkey_set() system call, or by
using the WRPKRU instruction.  The system call is preferred and less
error-prone since it enforces that a protection is allocated before its
access protection can be modified.
Details (perhaps not the WRPKRU bit) that should go in pkey(7).
quoted
* Explanation of the relationship between page permission
  bits (PROT_READ/PROT_WRITE/PROTE_EXEC) and
  PKEY_DISABLE_ACCESS and PKEY_DISABLE_WRITE.
  It's still not clear to me. Do the PKEY_* bits
  override the PROT_* bits. Or, something else?
Protection keys add access restrictions in addition to existing page
permissions.  They can only take away access; they never grant
additional access.
This belongs in pkey(7) :-).

Cheers,

Michael

-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help