Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751407AbbEGT5p (ORCPT ); Thu, 7 May 2015 15:57:45 -0400 Received: from e06smtp10.uk.ibm.com ([195.75.94.106]:47931 "EHLO e06smtp10.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751332AbbEGT5m (ORCPT ); Thu, 7 May 2015 15:57:42 -0400 Message-ID: <554BC3B0.8020203@de.ibm.com> Date: Thu, 07 May 2015 21:57:36 +0200 From: Christian Borntraeger User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Dave Hansen , Ingo Molnar CC: linux-kernel@vger.kernel.org, x86@kernel.org, linux-s390 Subject: Re: [PATCH 00/12] [RFC] x86: Memory Protection Keys References: <20150507174132.34AF8FAF@viggo.jf.intel.com> <20150507175707.GA22172@gmail.com> <554BAA68.6000508@sr71.net> <554BBB74.70706@de.ibm.com> <554BBD0F.6080209@sr71.net> <554BC0CE.6070900@de.ibm.com> <554BC1DC.3050303@sr71.net> In-Reply-To: <554BC1DC.3050303@sr71.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15050719-0041-0000-0000-0000042BA5B4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2039 Lines: 44 Am 07.05.2015 um 21:49 schrieb Dave Hansen: > 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? Both. In fact its also used for I/O. Maybe that also points out the biggest difference. the storage key is a property of the physical page frame (and not of the virtual page defined by the page tables). So we cannot really use that for shared memory and then set different protection keys in different mappings. > The x86 ones affect data only. > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/