From: Ram Pai <linuxram@us.ibm.com> To: mpe@ellerman.id.au, mingo@redhat.com, akpm@linux-foundation.org, corbet@lwn.net, arnd@arndb.de Cc: linuxppc-dev@lists.ozlabs.org, linux-mm@kvack.org, x86@kernel.org, linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, dave.hansen@intel.com, benh@kernel.crashing.org, paulus@samba.org, khandual@linux.vnet.ibm.com, aneesh.kumar@linux.vnet.ibm.com, bsingharora@gmail.com, hbabu@us.ibm.com, mhocko@kernel.org, bauerman@linux.vnet.ibm.com, ebiederm@xmission.com, linuxram@us.ibm.com Subject: [PATCH v9 36/51] selftest/vm: generic function to handle shadow key register Date: Mon, 6 Nov 2017 00:57:28 -0800 [thread overview] Message-ID: <1509958663-18737-37-git-send-email-linuxram@us.ibm.com> (raw) In-Reply-To: <1509958663-18737-1-git-send-email-linuxram@us.ibm.com> helper functions to handler shadow pkey register Signed-off-by: Ram Pai <linuxram@us.ibm.com> --- tools/testing/selftests/vm/pkey-helpers.h | 27 ++++++++++++++++++++ tools/testing/selftests/vm/protection_keys.c | 34 ++++++++++++++++--------- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/tools/testing/selftests/vm/pkey-helpers.h b/tools/testing/selftests/vm/pkey-helpers.h index b03f7e5..d521f53 100644 --- a/tools/testing/selftests/vm/pkey-helpers.h +++ b/tools/testing/selftests/vm/pkey-helpers.h @@ -44,6 +44,33 @@ #define DEBUG_LEVEL 0 #endif #define DPRINT_IN_SIGNAL_BUF_SIZE 4096 + +static inline u32 pkey_to_shift(int pkey) +{ + return pkey * PKEY_BITS_PER_PKEY; +} + +static inline pkey_reg_t reset_bits(int pkey, pkey_reg_t bits) +{ + u32 shift = pkey_to_shift(pkey); + + return ~(bits << shift); +} + +static inline pkey_reg_t left_shift_bits(int pkey, pkey_reg_t bits) +{ + u32 shift = pkey_to_shift(pkey); + + return (bits << shift); +} + +static inline pkey_reg_t right_shift_bits(int pkey, pkey_reg_t bits) +{ + u32 shift = pkey_to_shift(pkey); + + return (bits >> shift); +} + extern int dprint_in_signal; extern char dprint_in_signal_buffer[DPRINT_IN_SIGNAL_BUF_SIZE]; static inline void sigsafe_printf(const char *format, ...) diff --git a/tools/testing/selftests/vm/protection_keys.c b/tools/testing/selftests/vm/protection_keys.c index 2e8de01..8e2e277 100644 --- a/tools/testing/selftests/vm/protection_keys.c +++ b/tools/testing/selftests/vm/protection_keys.c @@ -374,7 +374,7 @@ u32 pkey_get(int pkey, unsigned long flags) __func__, pkey, flags, 0, 0); dprintf2("%s() raw pkey_reg: %x\n", __func__, pkey_reg); - shifted_pkey_reg = (pkey_reg >> (pkey * PKEY_BITS_PER_PKEY)); + shifted_pkey_reg = right_shift_bits(pkey, pkey_reg); dprintf2("%s() shifted_pkey_reg: %x\n", __func__, shifted_pkey_reg); masked_pkey_reg = shifted_pkey_reg & mask; dprintf2("%s() masked pkey_reg: %x\n", __func__, masked_pkey_reg); @@ -397,9 +397,9 @@ int pkey_set(int pkey, unsigned long rights, unsigned long flags) /* copy old pkey_reg */ new_pkey_reg = old_pkey_reg; /* mask out bits from pkey in old value: */ - new_pkey_reg &= ~(mask << (pkey * PKEY_BITS_PER_PKEY)); + new_pkey_reg &= reset_bits(pkey, mask); /* OR in new bits for pkey: */ - new_pkey_reg |= (rights << (pkey * PKEY_BITS_PER_PKEY)); + new_pkey_reg |= left_shift_bits(pkey, rights); __wrpkey_reg(new_pkey_reg); @@ -430,7 +430,7 @@ void pkey_disable_set(int pkey, int flags) ret = pkey_set(pkey, pkey_rights, syscall_flags); assert(!ret); /*pkey_reg and flags have the same format */ - shadow_pkey_reg |= flags << (pkey * 2); + shadow_pkey_reg |= left_shift_bits(pkey, flags); dprintf1("%s(%d) shadow: 0x%016lx\n", __func__, pkey, shadow_pkey_reg); @@ -465,7 +465,7 @@ void pkey_disable_clear(int pkey, int flags) ret = pkey_set(pkey, pkey_rights, 0); /* pkey_reg and flags have the same format */ - shadow_pkey_reg &= ~(flags << (pkey * 2)); + shadow_pkey_reg &= reset_bits(pkey, flags); pkey_assert(ret >= 0); pkey_rights = pkey_get(pkey, syscall_flags); @@ -523,6 +523,21 @@ int sys_pkey_alloc(unsigned long flags, unsigned long init_val) return ret; } +void pkey_setup_shadow(void) +{ + shadow_pkey_reg = __rdpkey_reg(); +} + +void pkey_reset_shadow(u32 key) +{ + shadow_pkey_reg &= reset_bits(key, 0x3); +} + +void pkey_set_shadow(u32 key, u64 init_val) +{ + shadow_pkey_reg |= left_shift_bits(key, init_val); +} + int alloc_pkey(void) { int ret; @@ -540,7 +555,7 @@ int alloc_pkey(void) shadow_pkey_reg); if (ret) { /* clear both the bits: */ - shadow_pkey_reg &= ~(0x3 << (ret * 2)); + pkey_reset_shadow(ret); dprintf4("%s()::%d, ret: %d pkey_reg: 0x%016lx " "shadow: 0x%016lx\n", __func__, @@ -550,7 +565,7 @@ int alloc_pkey(void) * move the new state in from init_val * (remember, we cheated and init_val == pkey_reg format) */ - shadow_pkey_reg |= (init_val << (ret * 2)); + pkey_set_shadow(ret, init_val); } dprintf4("%s()::%d, ret: %d pkey_reg: 0x%016lx shadow: 0x%016lx\n", __func__, __LINE__, ret, __rdpkey_reg(), @@ -1322,11 +1337,6 @@ void run_tests_once(void) iteration_nr++; } -void pkey_setup_shadow(void) -{ - shadow_pkey_reg = __rdpkey_reg(); -} - int main(void) { int nr_iterations = 22; -- 1.7.1
WARNING: multiple messages have this Message-ID (diff)
From: Ram Pai <linuxram@us.ibm.com> To: mpe@ellerman.id.au, mingo@redhat.com, akpm@linux-foundation.org, corbet@lwn.net, arnd@arndb.de Cc: linuxppc-dev@lists.ozlabs.org, linux-mm@kvack.org, x86@kernel.org, linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, dave.hansen@intel.com, benh@kernel.crashing.org, paulus@samba.org, khandual@linux.vnet.ibm.com, aneesh.kumar@linux.vnet.ibm.com, bsingharora@gmail.com, hbabu@us.ibm.com, mhocko@kernel.org, bauerman@linux.vnet.ibm.com, ebiederm@xmission.com, linuxram@us.ibm.com Subject: [PATCH v9 36/51] selftest/vm: generic function to handle shadow key register Date: Mon, 6 Nov 2017 00:57:28 -0800 [thread overview] Message-ID: <1509958663-18737-37-git-send-email-linuxram@us.ibm.com> (raw) In-Reply-To: <1509958663-18737-1-git-send-email-linuxram@us.ibm.com> helper functions to handler shadow pkey register Signed-off-by: Ram Pai <linuxram@us.ibm.com> --- tools/testing/selftests/vm/pkey-helpers.h | 27 ++++++++++++++++++++ tools/testing/selftests/vm/protection_keys.c | 34 ++++++++++++++++--------- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/tools/testing/selftests/vm/pkey-helpers.h b/tools/testing/selftests/vm/pkey-helpers.h index b03f7e5..d521f53 100644 --- a/tools/testing/selftests/vm/pkey-helpers.h +++ b/tools/testing/selftests/vm/pkey-helpers.h @@ -44,6 +44,33 @@ #define DEBUG_LEVEL 0 #endif #define DPRINT_IN_SIGNAL_BUF_SIZE 4096 + +static inline u32 pkey_to_shift(int pkey) +{ + return pkey * PKEY_BITS_PER_PKEY; +} + +static inline pkey_reg_t reset_bits(int pkey, pkey_reg_t bits) +{ + u32 shift = pkey_to_shift(pkey); + + return ~(bits << shift); +} + +static inline pkey_reg_t left_shift_bits(int pkey, pkey_reg_t bits) +{ + u32 shift = pkey_to_shift(pkey); + + return (bits << shift); +} + +static inline pkey_reg_t right_shift_bits(int pkey, pkey_reg_t bits) +{ + u32 shift = pkey_to_shift(pkey); + + return (bits >> shift); +} + extern int dprint_in_signal; extern char dprint_in_signal_buffer[DPRINT_IN_SIGNAL_BUF_SIZE]; static inline void sigsafe_printf(const char *format, ...) diff --git a/tools/testing/selftests/vm/protection_keys.c b/tools/testing/selftests/vm/protection_keys.c index 2e8de01..8e2e277 100644 --- a/tools/testing/selftests/vm/protection_keys.c +++ b/tools/testing/selftests/vm/protection_keys.c @@ -374,7 +374,7 @@ u32 pkey_get(int pkey, unsigned long flags) __func__, pkey, flags, 0, 0); dprintf2("%s() raw pkey_reg: %x\n", __func__, pkey_reg); - shifted_pkey_reg = (pkey_reg >> (pkey * PKEY_BITS_PER_PKEY)); + shifted_pkey_reg = right_shift_bits(pkey, pkey_reg); dprintf2("%s() shifted_pkey_reg: %x\n", __func__, shifted_pkey_reg); masked_pkey_reg = shifted_pkey_reg & mask; dprintf2("%s() masked pkey_reg: %x\n", __func__, masked_pkey_reg); @@ -397,9 +397,9 @@ int pkey_set(int pkey, unsigned long rights, unsigned long flags) /* copy old pkey_reg */ new_pkey_reg = old_pkey_reg; /* mask out bits from pkey in old value: */ - new_pkey_reg &= ~(mask << (pkey * PKEY_BITS_PER_PKEY)); + new_pkey_reg &= reset_bits(pkey, mask); /* OR in new bits for pkey: */ - new_pkey_reg |= (rights << (pkey * PKEY_BITS_PER_PKEY)); + new_pkey_reg |= left_shift_bits(pkey, rights); __wrpkey_reg(new_pkey_reg); @@ -430,7 +430,7 @@ void pkey_disable_set(int pkey, int flags) ret = pkey_set(pkey, pkey_rights, syscall_flags); assert(!ret); /*pkey_reg and flags have the same format */ - shadow_pkey_reg |= flags << (pkey * 2); + shadow_pkey_reg |= left_shift_bits(pkey, flags); dprintf1("%s(%d) shadow: 0x%016lx\n", __func__, pkey, shadow_pkey_reg); @@ -465,7 +465,7 @@ void pkey_disable_clear(int pkey, int flags) ret = pkey_set(pkey, pkey_rights, 0); /* pkey_reg and flags have the same format */ - shadow_pkey_reg &= ~(flags << (pkey * 2)); + shadow_pkey_reg &= reset_bits(pkey, flags); pkey_assert(ret >= 0); pkey_rights = pkey_get(pkey, syscall_flags); @@ -523,6 +523,21 @@ int sys_pkey_alloc(unsigned long flags, unsigned long init_val) return ret; } +void pkey_setup_shadow(void) +{ + shadow_pkey_reg = __rdpkey_reg(); +} + +void pkey_reset_shadow(u32 key) +{ + shadow_pkey_reg &= reset_bits(key, 0x3); +} + +void pkey_set_shadow(u32 key, u64 init_val) +{ + shadow_pkey_reg |= left_shift_bits(key, init_val); +} + int alloc_pkey(void) { int ret; @@ -540,7 +555,7 @@ int alloc_pkey(void) shadow_pkey_reg); if (ret) { /* clear both the bits: */ - shadow_pkey_reg &= ~(0x3 << (ret * 2)); + pkey_reset_shadow(ret); dprintf4("%s()::%d, ret: %d pkey_reg: 0x%016lx " "shadow: 0x%016lx\n", __func__, @@ -550,7 +565,7 @@ int alloc_pkey(void) * move the new state in from init_val * (remember, we cheated and init_val == pkey_reg format) */ - shadow_pkey_reg |= (init_val << (ret * 2)); + pkey_set_shadow(ret, init_val); } dprintf4("%s()::%d, ret: %d pkey_reg: 0x%016lx shadow: 0x%016lx\n", __func__, __LINE__, ret, __rdpkey_reg(), @@ -1322,11 +1337,6 @@ void run_tests_once(void) iteration_nr++; } -void pkey_setup_shadow(void) -{ - shadow_pkey_reg = __rdpkey_reg(); -} - int main(void) { int nr_iterations = 22; -- 1.7.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-11-06 9:08 UTC|newest] Thread overview: 197+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-11-06 8:56 [PATCH v9 00/51] powerpc, mm: Memory Protection Keys Ram Pai 2017-11-06 8:56 ` Ram Pai 2017-11-06 8:56 ` [PATCH v9 01/51] mm, powerpc, x86: define VM_PKEY_BITx bits if CONFIG_ARCH_HAS_PKEYS is enabled Ram Pai 2017-11-06 8:56 ` Ram Pai 2017-11-06 8:56 ` [PATCH v9 02/51] mm, powerpc, x86: introduce an additional vma bit for powerpc pkey Ram Pai 2017-11-06 8:56 ` Ram Pai 2017-11-06 8:56 ` [PATCH v9 03/51] powerpc: initial pkey plumbing Ram Pai 2017-11-06 8:56 ` Ram Pai 2017-11-06 8:56 ` [PATCH v9 04/51] powerpc: track allocation status of all pkeys Ram Pai 2017-11-06 8:56 ` Ram Pai 2017-11-06 8:56 ` [PATCH v9 05/51] powerpc: helper function to read,write AMR,IAMR,UAMOR registers Ram Pai 2017-11-06 8:56 ` [PATCH v9 05/51] powerpc: helper function to read, write AMR, IAMR, UAMOR registers Ram Pai 2017-11-06 8:56 ` [PATCH v9 05/51] powerpc: helper function to read,write AMR,IAMR,UAMOR registers Ram Pai 2017-11-06 8:56 ` [PATCH v9 06/51] powerpc: helper functions to initialize AMR, IAMR and UAMOR registers Ram Pai 2017-11-06 8:56 ` Ram Pai 2017-11-06 8:56 ` [PATCH v9 07/51] powerpc: cleanup AMR, IAMR when a key is allocated or freed Ram Pai 2017-11-06 8:56 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 08/51] powerpc: implementation for arch_set_user_pkey_access() Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 09/51] powerpc: ability to create execute-disabled pkeys Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 10/51] powerpc: store and restore the pkey state across context switches Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 11/51] powerpc: introduce execute-only pkey Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 12/51] powerpc: ability to associate pkey to a vma Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 13/51] powerpc: implementation for arch_override_mprotect_pkey() Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 14/51] powerpc: map vma key-protection bits to pte key bits Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 15/51] powerpc: Program HPTE key protection bits Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 16/51] powerpc: helper to validate key-access permissions of a pte Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 17/51] powerpc: check key protection for user page access Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 18/51] powerpc: implementation for arch_vma_access_permitted() Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 19/51] powerpc: Handle exceptions caused by pkey violation Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 20/51] powerpc: introduce get_mm_addr_key() helper Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 21/51] powerpc: Deliver SEGV signal on pkey violation Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 22/51] powerpc/ptrace: Add memory protection key regset Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 23/51] powerpc: Enable pkey subsystem Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-13 0:54 ` Ram Pai 2017-11-13 0:54 ` Ram Pai 2017-11-13 0:54 ` [Linux-kselftest-mirror] " Ram Pai 2017-11-13 0:54 ` linuxram 2017-11-06 8:57 ` [PATCH v9 24/51] powerpc: sys_pkey_alloc() and sys_pkey_free() system calls Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 25/51] powerpc: sys_pkey_mprotect() system call Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 26/51] powerpc: add sys_pkey_modify() " Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 27/51] mm, x86 : introduce arch_pkeys_enabled() Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 28/51] mm: display pkey in smaps if arch_pkeys_enabled() is true Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 29/51] mm/mprotect, powerpc/mm/pkeys, x86/mm/pkeys: Add sysfs interface Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-12-18 18:54 ` Dave Hansen 2017-12-18 18:54 ` Dave Hansen 2017-12-18 18:54 ` [Linux-kselftest-mirror] " Dave Hansen 2017-12-18 18:54 ` dave.hansen 2017-12-18 22:18 ` Ram Pai 2017-12-18 22:18 ` Ram Pai 2017-12-18 22:18 ` [Linux-kselftest-mirror] " Ram Pai 2017-12-18 22:18 ` linuxram 2017-12-18 22:28 ` Dave Hansen 2017-12-18 22:28 ` Dave Hansen 2017-12-18 22:28 ` [Linux-kselftest-mirror] " Dave Hansen 2017-12-18 22:28 ` dave.hansen 2017-12-18 23:15 ` Ram Pai 2017-12-18 23:15 ` Ram Pai 2017-12-18 23:15 ` [Linux-kselftest-mirror] " Ram Pai 2017-12-18 23:15 ` linuxram 2017-12-19 8:31 ` Gabriel Paubert 2017-12-19 8:31 ` Gabriel Paubert 2017-12-19 8:31 ` [Linux-kselftest-mirror] " Gabriel Paubert 2017-12-19 8:31 ` paubert 2017-12-19 16:22 ` Ram Pai 2017-12-19 16:22 ` Ram Pai 2017-12-19 16:22 ` [Linux-kselftest-mirror] " Ram Pai 2017-12-19 16:22 ` linuxram 2017-12-19 21:34 ` Benjamin Herrenschmidt 2017-12-19 21:34 ` Benjamin Herrenschmidt 2017-12-19 21:34 ` [Linux-kselftest-mirror] " Benjamin Herrenschmidt 2017-12-19 21:34 ` benh 2017-12-20 17:50 ` Ram Pai 2017-12-20 17:50 ` Ram Pai 2017-12-20 17:50 ` [Linux-kselftest-mirror] " Ram Pai 2017-12-20 17:50 ` linuxram 2017-12-20 22:49 ` Benjamin Herrenschmidt 2017-12-20 22:49 ` Benjamin Herrenschmidt 2017-12-20 22:49 ` [Linux-kselftest-mirror] " Benjamin Herrenschmidt 2017-12-20 22:49 ` benh 2017-12-19 10:50 ` Michael Ellerman 2017-12-19 10:50 ` Michael Ellerman 2017-12-19 10:50 ` [Linux-kselftest-mirror] " Michael Ellerman 2017-12-19 10:50 ` mpe 2017-12-19 16:32 ` Ram Pai 2017-12-19 16:32 ` Ram Pai 2017-12-19 16:32 ` [Linux-kselftest-mirror] " Ram Pai 2017-12-19 16:32 ` linuxram 2017-11-06 8:57 ` [PATCH v9 30/51] Documentation/x86: Move protecton key documentation to arch neutral directory Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 31/51] Documentation/vm: PowerPC specific updates to memory protection keys Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 32/51] selftest/x86: Move protecton key selftest to arch neutral directory Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 33/51] selftest/vm: rename all references to pkru to a generic name Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 34/51] selftest/vm: move generic definitions to header file Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 35/51] selftest/vm: typecast the pkey register Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` Ram Pai [this message] 2017-11-06 8:57 ` [PATCH v9 36/51] selftest/vm: generic function to handle shadow key register Ram Pai 2017-11-06 8:57 ` [PATCH v9 37/51] selftest/vm: fix the wrong assert in pkey_disable_set() Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 38/51] selftest/vm: fixed bugs in pkey_disable_clear() Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 39/51] selftest/vm: clear the bits in shadow reg when a pkey is freed Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 40/51] selftest/vm: fix alloc_random_pkey() to make it really random Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 41/51] selftest/vm: introduce two arch independent abstraction Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 42/51] selftest/vm: pkey register should match shadow pkey Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 43/51] selftest/vm: generic cleanup Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 44/51] selftest/vm: powerpc implementation for generic abstraction Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-09 18:47 ` Breno Leitao 2017-11-09 18:47 ` Breno Leitao 2017-11-09 18:47 ` [Linux-kselftest-mirror] " Breno Leitao 2017-11-09 18:47 ` leitao 2017-11-09 23:37 ` Ram Pai 2017-11-09 23:37 ` Ram Pai 2017-11-09 23:37 ` [Linux-kselftest-mirror] " Ram Pai 2017-11-09 23:37 ` linuxram 2017-11-10 11:36 ` Breno Leitao 2017-11-10 11:36 ` Breno Leitao 2017-11-10 11:36 ` [Linux-kselftest-mirror] " Breno Leitao 2017-11-10 11:36 ` leitao 2017-11-06 8:57 ` [PATCH v9 45/51] selftest/vm: fix an assertion in test_pkey_alloc_exhaust() Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 46/51] selftest/vm: associate key on a mapped page and detect access violation Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 47/51] selftest/vm: associate key on a mapped page and detect write violation Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 48/51] selftest/vm: detect write violation on a mapped access-denied-key page Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 49/51] selftest/vm: sub-page allocator Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 50/51] selftests/powerpc: Add ptrace tests for Protection Key register Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 8:57 ` [PATCH v9 51/51] selftests/powerpc: Add core file test " Ram Pai 2017-11-06 8:57 ` Ram Pai 2017-11-06 21:28 ` [PATCH v9 00/51] powerpc, mm: Memory Protection Keys Florian Weimer 2017-11-06 21:28 ` Florian Weimer 2017-11-07 1:22 ` Ram Pai 2017-11-07 1:22 ` Ram Pai 2017-11-07 7:32 ` Florian Weimer 2017-11-07 7:32 ` Florian Weimer 2017-11-07 7:32 ` Florian Weimer 2017-11-07 22:39 ` Ram Pai 2017-11-07 22:39 ` Ram Pai 2017-11-07 22:39 ` Ram Pai 2017-11-07 22:39 ` Ram Pai 2017-11-07 22:39 ` [Linux-kselftest-mirror] " Ram Pai 2017-11-07 22:39 ` linuxram 2017-11-07 22:47 ` Dave Hansen 2017-11-07 22:47 ` Dave Hansen 2017-11-07 22:47 ` [Linux-kselftest-mirror] " Dave Hansen 2017-11-07 22:47 ` dave.hansen 2017-11-07 23:44 ` Ram Pai 2017-11-07 23:44 ` Ram Pai 2017-11-09 22:23 ` Ram Pai 2017-11-09 22:23 ` Ram Pai 2017-11-09 22:23 ` [Linux-kselftest-mirror] " Ram Pai 2017-11-09 22:23 ` linuxram 2017-11-10 18:10 ` Christophe LEROY 2017-11-10 18:10 ` Christophe LEROY 2017-11-10 18:10 ` Christophe LEROY 2017-11-10 18:10 ` [Linux-kselftest-mirror] " Christophe LEROY 2017-11-10 18:10 ` christophe.leroy 2017-11-12 20:45 ` Ram Pai 2017-11-12 20:45 ` Ram Pai 2017-11-12 20:45 ` [Linux-kselftest-mirror] " Ram Pai 2017-11-12 20:45 ` linuxram
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1509958663-18737-37-git-send-email-linuxram@us.ibm.com \ --to=linuxram@us.ibm.com \ --cc=akpm@linux-foundation.org \ --cc=aneesh.kumar@linux.vnet.ibm.com \ --cc=arnd@arndb.de \ --cc=bauerman@linux.vnet.ibm.com \ --cc=benh@kernel.crashing.org \ --cc=bsingharora@gmail.com \ --cc=corbet@lwn.net \ --cc=dave.hansen@intel.com \ --cc=ebiederm@xmission.com \ --cc=hbabu@us.ibm.com \ --cc=khandual@linux.vnet.ibm.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-kselftest@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mhocko@kernel.org \ --cc=mingo@redhat.com \ --cc=mpe@ellerman.id.au \ --cc=paulus@samba.org \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.