Messages in this thread | | | Date | Thu, 07 May 2015 12:49:48 -0700 | From | Dave Hansen <> | Subject | Re: [PATCH 00/12] [RFC] x86: Memory Protection Keys |
| |
On 05/07/2015 12:45 PM, Christian Borntraeger wrote: >>> >> This all looks like s390 storage keys (with the key in pagetables instead >>> >> of a dedicated place). There we also have 16 values for the key and 4 bits >>> >> in the PSW that describe the thread local key both are matched. >>> >> There is an additional field F (fetch protection) that decides, if the >>> >> key value is used for stores or for stores+fetches. >> > >> > OK, so a thread can only be in one domain at a time? > Via the PSW yes. > Actually the docs talk about access key, which is usually the PSW. There are > some instructions like MOVE WITH KEY that allow to specify the key for this > specific instruction. For compiled code these insructions are not used in > Linux and I can not really see a way to implement that properly. Furthermore > enabling these key ops has other implications which are unwanted.
OK, so we have to basic operations that need to be done for protection/storage/$FOO keys:
1. Assign a key (or set of keys) to a memory area 2. Have a thread request the access (read and/or write) to a set of areas be acquired or revoked.
For (2) on x86, we basically allow any combination of keys and r/w permissions. On s390, we would need to ensure that acces to only one key was allowed at a time.
BTW, do the s390 keys affect instructions and data, or data only?
The x86 ones affect data only.
| |