Re: [RFC v4 00/17] powerpc: Memory Protection Keys

From: Balbir Singh
Date: Tue Jun 27 2017 - 06:47:59 EST


On Tue, 2017-06-27 at 03:11 -0700, Ram Pai wrote:
> Memory protection keys enable applications to protect its
> address space from inadvertent access or corruption from
> itself.
>
> The overall idea:
>
> A process allocates a key and associates it with
> a address range within its address space.
> The process than can dynamically set read/write
> permissions on the key without involving the
> kernel. Any code that violates the permissions
> off the address space; as defined by its associated
> key, will receive a segmentation fault.
>
> This patch series enables the feature on PPC64 HPTE
> platform.
>
> ISA3.0 section 5.7.13 describes the detailed specifications.
>
>
> Testing:
> This patch series has passed all the protection key
> tests available in the selftests directory.
> The tests are updated to work on both x86 and powerpc.
>
> version v4:
> (1) patches no more depend on the pte bits to program
> the hpte -- comment by Balbir
> (2) documentation updates
> (3) fixed a bug in the selftest.
> (4) unlike x86, powerpc lets signal handler change key
> permission bits; the change will persist across
> signal handler boundaries. Earlier we allowed
> the signal handler to modify a field in the siginfo
> structure which would than be used by the kernel
> to program the key protection register (AMR)
> -- resolves a issue raised by Ben.
> "Calls to sys_swapcontext with a made-up context
> will end up with a crap AMR if done by code who
> didn't know about that register".
> (5) these changes enable protection keys on 4k-page
> kernel aswell.

I have not looked at the full series, but it seems cleaner than the original
one and the side-effect is that we can support 4k as well. Nice!

Balbir Singh.