From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756480AbcC2J01 (ORCPT ); Tue, 29 Mar 2016 05:26:27 -0400 Received: from terminus.zytor.com ([198.137.202.10]:45728 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756363AbcC2J0Y (ORCPT ); Tue, 29 Mar 2016 05:26:24 -0400 Date: Tue, 29 Mar 2016 02:24:40 -0700 From: tip-bot for Dave Hansen Message-ID: Cc: brgerst@gmail.com, dave.hansen@linux.intel.com, stefanr@s5r6.in-berlin.de, mingo@kernel.org, dvlasenk@redhat.com, tglx@linutronix.de, peterz@infradead.org, bp@alien8.de, torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, dave@sr71.net, hpa@zytor.com, luto@amacapital.net Reply-To: torvalds@linux-foundation.org, bp@alien8.de, peterz@infradead.org, tglx@linutronix.de, hpa@zytor.com, luto@amacapital.net, dave@sr71.net, linux-kernel@vger.kernel.org, dave.hansen@linux.intel.com, brgerst@gmail.com, dvlasenk@redhat.com, mingo@kernel.org, stefanr@s5r6.in-berlin.de In-Reply-To: <20151214190634.426BEE41@viggo.jf.intel.com> References: <20151214190634.426BEE41@viggo.jf.intel.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/urgent] x86/mm/pkeys: Add missing Documentation Git-Commit-ID: 591b1d8d86074ac3a3163d89bcfe7b232cf83902 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 591b1d8d86074ac3a3163d89bcfe7b232cf83902 Gitweb: http://git.kernel.org/tip/591b1d8d86074ac3a3163d89bcfe7b232cf83902 Author: Dave Hansen AuthorDate: Mon, 14 Dec 2015 11:06:34 -0800 Committer: Ingo Molnar CommitDate: Tue, 29 Mar 2016 11:21:17 +0200 x86/mm/pkeys: Add missing Documentation Stefan Richter noticed that the X86_INTEL_MEMORY_PROTECTION_KEYS option in arch/x86/Kconfig references Documentation/x86/protection-keys.txt, but the file does not exist. This is a patch merging mishap: the final (v8) version of the pkeys series did not include the documentation patch 32 and v7 included. Add it now. Reported-by: Stefan Richter Signed-off-by: Dave Hansen Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/20151214190634.426BEE41@viggo.jf.intel.com [ Added changelog. ] Signed-off-by: Ingo Molnar Signed-off-by: Ingo Molnar --- Documentation/x86/protection-keys.txt | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Documentation/x86/protection-keys.txt b/Documentation/x86/protection-keys.txt new file mode 100644 index 0000000..c281ded --- /dev/null +++ b/Documentation/x86/protection-keys.txt @@ -0,0 +1,27 @@ +Memory Protection Keys for Userspace (PKU aka PKEYs) is a CPU feature +which will be found on future Intel CPUs. + +Memory Protection Keys provides a mechanism for enforcing page-based +protections, but without requiring modification of the page tables +when an application changes protection domains. It works by +dedicating 4 previously ignored bits in each page table entry to a +"protection key", giving 16 possible keys. + +There is also a new user-accessible register (PKRU) with two separate +bits (Access Disable and Write Disable) for each key. Being a CPU +register, PKRU is inherently thread-local, potentially giving each +thread a different set of protections from every other thread. + +There are two new instructions (RDPKRU/WRPKRU) for reading and writing +to the new register. The feature is only available in 64-bit mode, +even though there is theoretically space in the PAE PTEs. These +permissions are enforced on data access only and have no effect on +instruction fetches. + +=========================== Config Option =========================== + +This config option adds approximately 1.5kb of text. and 50 bytes of +data to the executable. A workload which does large O_DIRECT reads +of holes in XFS files was run to exercise get_user_pages_fast(). No +performance delta was observed with the config option +enabled or disabled.