Thread (1 message) 1 message, 1 author, 2018-11-12

Re: pkeys: Reserve PKEY_DISABLE_READ

From: Florian Weimer <hidden>
Date: 2018-11-12 10:29:25
Also in: linux-mm, linuxppc-dev

* Ram Pai:
On Thu, Nov 08, 2018 at 01:05:09PM +0100, Florian Weimer wrote:
quoted
Would it be possible to reserve a bit for PKEY_DISABLE_READ?

I think the POWER implementation can disable read access at the hardware
level, but not write access, and that cannot be expressed with the
current PKEY_DISABLE_ACCESS and PKEY_DISABLE_WRITE bits.
POWER hardware can disable-read and can **also disable-write**
at the hardware level. It can disable-execute aswell at the
hardware level.   For example if the key bits for a given key in the AMR
register is  
	0b01  it is read-disable
	0b10  it is write-disable

To support access-disable, we make the key value 0b11.

So in case if you want to know if the key is read-disable 'bitwise-and' it
against 0x1.  i.e  (x & 0x1)
Not sure if we covered that alreay, but my problem is that I cannot
translate a 0b01 mask to a PKEY_DISABLE_* flag combination with the
current flags.  0b10 and 0b11 are fine.

POWER also loses the distinction between PKEY_DISABLE_ACCESS and
PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE, but that's fine.  This breaks
the current glibc test case, but I have a patch for that.  Arguably, the
test is wrong or at least overly strict in what it accepts.

Thanks,
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help