All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sandipan Das <sandipan@linux.ibm.com>
To: shuah@kernel.org, linux-kselftest@vger.kernel.org
Cc: linux-arch@vger.kernel.org, fweimer@redhat.com,
	dave.hansen@intel.com, x86@kernel.org, linuxram@us.ibm.com,
	mhocko@kernel.org, linux-mm@kvack.org, mingo@redhat.com,
	aneesh.kumar@linux.ibm.com, bauerman@linux.ibm.com,
	msuchanek@suse.de, mpe@ellerman.id.au,
	linuxppc-dev@lists.ozlabs.org
Subject: [PATCH v17 13/24] selftests/vm/pkeys: Introduce generic pkey abstractions
Date: Mon, 20 Jan 2020 14:06:10 +0530	[thread overview]
Message-ID: <8c6354acc5ee9f871d378f8f8d644d3fd5ab3471.1579507768.git.sandipan@linux.ibm.com> (raw)
In-Reply-To: <cover.1579507768.git.sandipan@linux.ibm.com>
In-Reply-To: <cover.1579507768.git.sandipan@linux.ibm.com>

From: Ram Pai <linuxram@us.ibm.com>

This introduces some generic abstractions and provides
the corresponding architecture-specfic implementations
for these abstractions.

cc: Dave Hansen <dave.hansen@intel.com>
cc: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
---
 tools/testing/selftests/vm/pkey-helpers.h    | 12 ++++++++++++
 tools/testing/selftests/vm/pkey-x86.h        | 15 +++++++++++++++
 tools/testing/selftests/vm/protection_keys.c |  8 ++------
 3 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/tools/testing/selftests/vm/pkey-helpers.h b/tools/testing/selftests/vm/pkey-helpers.h
index 0e3da7c8d628..621fb2a0a5ef 100644
--- a/tools/testing/selftests/vm/pkey-helpers.h
+++ b/tools/testing/selftests/vm/pkey-helpers.h
@@ -74,6 +74,9 @@ extern void abort_hooks(void);
 	}					\
 } while (0)
 
+__attribute__((noinline)) int read_ptr(int *ptr);
+void expected_pkey_fault(int pkey);
+
 #if defined(__i386__) || defined(__x86_64__) /* arch */
 #include "pkey-x86.h"
 #else /* arch */
@@ -172,4 +175,13 @@ static inline void __pkey_write_allow(int pkey, int do_allow_write)
 #define __stringify_1(x...)     #x
 #define __stringify(x...)       __stringify_1(x)
 
+static inline u32 *siginfo_get_pkey_ptr(siginfo_t *si)
+{
+#ifdef si_pkey
+	return &si->si_pkey;
+#else
+	return (u32 *)(((u8 *)si) + si_pkey_offset);
+#endif
+}
+
 #endif /* _PKEYS_HELPER_H */
diff --git a/tools/testing/selftests/vm/pkey-x86.h b/tools/testing/selftests/vm/pkey-x86.h
index def2a1bcf6a5..a0c59d4f7af2 100644
--- a/tools/testing/selftests/vm/pkey-x86.h
+++ b/tools/testing/selftests/vm/pkey-x86.h
@@ -42,6 +42,7 @@
 #endif
 
 #define NR_PKEYS		16
+#define NR_RESERVED_PKEYS	2 /* pkey-0 and exec-only-pkey */
 #define PKEY_BITS_PER_PKEY	2
 #define HPAGE_SIZE		(1UL<<21)
 #define PAGE_SIZE		4096
@@ -158,4 +159,18 @@ int pkey_reg_xstate_offset(void)
 	return xstate_offset;
 }
 
+static inline int get_arch_reserved_keys(void)
+{
+	return NR_RESERVED_PKEYS;
+}
+
+void expect_fault_on_read_execonly_key(void *p1, int pkey)
+{
+	int ptr_contents;
+
+	ptr_contents = read_ptr(p1);
+	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
+	expected_pkey_fault(pkey);
+}
+
 #endif /* _PKEYS_X86_H */
diff --git a/tools/testing/selftests/vm/protection_keys.c b/tools/testing/selftests/vm/protection_keys.c
index 535e464e27e9..57c71056c93d 100644
--- a/tools/testing/selftests/vm/protection_keys.c
+++ b/tools/testing/selftests/vm/protection_keys.c
@@ -1307,9 +1307,7 @@ void test_executing_on_unreadable_memory(int *ptr, u16 pkey)
 	madvise(p1, PAGE_SIZE, MADV_DONTNEED);
 	lots_o_noops_around_write(&scratch);
 	do_not_expect_pkey_fault("executing on PROT_EXEC memory");
-	ptr_contents = read_ptr(p1);
-	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
-	expected_pkey_fault(pkey);
+	expect_fault_on_read_execonly_key(p1, pkey);
 }
 
 void test_implicit_mprotect_exec_only_memory(int *ptr, u16 pkey)
@@ -1336,9 +1334,7 @@ void test_implicit_mprotect_exec_only_memory(int *ptr, u16 pkey)
 	madvise(p1, PAGE_SIZE, MADV_DONTNEED);
 	lots_o_noops_around_write(&scratch);
 	do_not_expect_pkey_fault("executing on PROT_EXEC memory");
-	ptr_contents = read_ptr(p1);
-	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
-	expected_pkey_fault(UNKNOWN_PKEY);
+	expect_fault_on_read_execonly_key(p1, UNKNOWN_PKEY);
 
 	/*
 	 * Put the memory back to non-PROT_EXEC.  Should clear the
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: Sandipan Das <sandipan@linux.ibm.com>
To: shuah@kernel.org, linux-kselftest@vger.kernel.org
Cc: linux-arch@vger.kernel.org, fweimer@redhat.com,
	dave.hansen@intel.com, x86@kernel.org, linuxram@us.ibm.com,
	mhocko@kernel.org, linux-mm@kvack.org, mingo@redhat.com,
	aneesh.kumar@linux.ibm.com, bauerman@linux.ibm.com,
	msuchanek@suse.de, mpe@ellerman.id.au,
	linuxppc-dev@lists.ozlabs.org
Subject: [PATCH v17 13/24] selftests/vm/pkeys: Introduce generic pkey abstractions
Date: Mon, 20 Jan 2020 14:06:10 +0530	[thread overview]
Message-ID: <8c6354acc5ee9f871d378f8f8d644d3fd5ab3471.1579507768.git.sandipan@linux.ibm.com> (raw)
Message-ID: <20200120083610.YV_c5PQlHkrOlbjKP7baMxm66faUkDB8fKzsZBedhHY@z> (raw)
In-Reply-To: <cover.1579507768.git.sandipan@linux.ibm.com>
In-Reply-To: <cover.1579507768.git.sandipan@linux.ibm.com>

From: Ram Pai <linuxram@us.ibm.com>

This introduces some generic abstractions and provides
the corresponding architecture-specfic implementations
for these abstractions.

cc: Dave Hansen <dave.hansen@intel.com>
cc: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
---
 tools/testing/selftests/vm/pkey-helpers.h    | 12 ++++++++++++
 tools/testing/selftests/vm/pkey-x86.h        | 15 +++++++++++++++
 tools/testing/selftests/vm/protection_keys.c |  8 ++------
 3 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/tools/testing/selftests/vm/pkey-helpers.h b/tools/testing/selftests/vm/pkey-helpers.h
index 0e3da7c8d628..621fb2a0a5ef 100644
--- a/tools/testing/selftests/vm/pkey-helpers.h
+++ b/tools/testing/selftests/vm/pkey-helpers.h
@@ -74,6 +74,9 @@ extern void abort_hooks(void);
 	}					\
 } while (0)

+__attribute__((noinline)) int read_ptr(int *ptr);
+void expected_pkey_fault(int pkey);
+
 #if defined(__i386__) || defined(__x86_64__) /* arch */
 #include "pkey-x86.h"
 #else /* arch */
@@ -172,4 +175,13 @@ static inline void __pkey_write_allow(int pkey, int do_allow_write)
 #define __stringify_1(x...)     #x
 #define __stringify(x...)       __stringify_1(x)

+static inline u32 *siginfo_get_pkey_ptr(siginfo_t *si)
+{
+#ifdef si_pkey
+	return &si->si_pkey;
+#else
+	return (u32 *)(((u8 *)si) + si_pkey_offset);
+#endif
+}
+
 #endif /* _PKEYS_HELPER_H */
diff --git a/tools/testing/selftests/vm/pkey-x86.h b/tools/testing/selftests/vm/pkey-x86.h
index def2a1bcf6a5..a0c59d4f7af2 100644
--- a/tools/testing/selftests/vm/pkey-x86.h
+++ b/tools/testing/selftests/vm/pkey-x86.h
@@ -42,6 +42,7 @@
 #endif

 #define NR_PKEYS		16
+#define NR_RESERVED_PKEYS	2 /* pkey-0 and exec-only-pkey */
 #define PKEY_BITS_PER_PKEY	2
 #define HPAGE_SIZE		(1UL<<21)
 #define PAGE_SIZE		4096
@@ -158,4 +159,18 @@ int pkey_reg_xstate_offset(void)
 	return xstate_offset;
 }

+static inline int get_arch_reserved_keys(void)
+{
+	return NR_RESERVED_PKEYS;
+}
+
+void expect_fault_on_read_execonly_key(void *p1, int pkey)
+{
+	int ptr_contents;
+
+	ptr_contents = read_ptr(p1);
+	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
+	expected_pkey_fault(pkey);
+}
+
 #endif /* _PKEYS_X86_H */
diff --git a/tools/testing/selftests/vm/protection_keys.c b/tools/testing/selftests/vm/protection_keys.c
index 535e464e27e9..57c71056c93d 100644
--- a/tools/testing/selftests/vm/protection_keys.c
+++ b/tools/testing/selftests/vm/protection_keys.c
@@ -1307,9 +1307,7 @@ void test_executing_on_unreadable_memory(int *ptr, u16 pkey)
 	madvise(p1, PAGE_SIZE, MADV_DONTNEED);
 	lots_o_noops_around_write(&scratch);
 	do_not_expect_pkey_fault("executing on PROT_EXEC memory");
-	ptr_contents = read_ptr(p1);
-	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
-	expected_pkey_fault(pkey);
+	expect_fault_on_read_execonly_key(p1, pkey);
 }

 void test_implicit_mprotect_exec_only_memory(int *ptr, u16 pkey)
@@ -1336,9 +1334,7 @@ void test_implicit_mprotect_exec_only_memory(int *ptr, u16 pkey)
 	madvise(p1, PAGE_SIZE, MADV_DONTNEED);
 	lots_o_noops_around_write(&scratch);
 	do_not_expect_pkey_fault("executing on PROT_EXEC memory");
-	ptr_contents = read_ptr(p1);
-	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
-	expected_pkey_fault(UNKNOWN_PKEY);
+	expect_fault_on_read_execonly_key(p1, UNKNOWN_PKEY);

 	/*
 	 * Put the memory back to non-PROT_EXEC.  Should clear the
-- 
2.17.1

WARNING: multiple messages have this Message-ID (diff)
From: Sandipan Das <sandipan@linux.ibm.com>
To: shuah@kernel.org, linux-kselftest@vger.kernel.org
Cc: linux-arch@vger.kernel.org, fweimer@redhat.com,
	linux-mm@kvack.org, aneesh.kumar@linux.ibm.com, x86@kernel.org,
	linuxram@us.ibm.com, mhocko@kernel.org, dave.hansen@intel.com,
	mingo@redhat.com, msuchanek@suse.de,
	linuxppc-dev@lists.ozlabs.org, bauerman@linux.ibm.com
Subject: [PATCH v17 13/24] selftests/vm/pkeys: Introduce generic pkey abstractions
Date: Mon, 20 Jan 2020 14:06:10 +0530	[thread overview]
Message-ID: <8c6354acc5ee9f871d378f8f8d644d3fd5ab3471.1579507768.git.sandipan@linux.ibm.com> (raw)
In-Reply-To: <cover.1579507768.git.sandipan@linux.ibm.com>
In-Reply-To: <cover.1579507768.git.sandipan@linux.ibm.com>

From: Ram Pai <linuxram@us.ibm.com>

This introduces some generic abstractions and provides
the corresponding architecture-specfic implementations
for these abstractions.

cc: Dave Hansen <dave.hansen@intel.com>
cc: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
---
 tools/testing/selftests/vm/pkey-helpers.h    | 12 ++++++++++++
 tools/testing/selftests/vm/pkey-x86.h        | 15 +++++++++++++++
 tools/testing/selftests/vm/protection_keys.c |  8 ++------
 3 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/tools/testing/selftests/vm/pkey-helpers.h b/tools/testing/selftests/vm/pkey-helpers.h
index 0e3da7c8d628..621fb2a0a5ef 100644
--- a/tools/testing/selftests/vm/pkey-helpers.h
+++ b/tools/testing/selftests/vm/pkey-helpers.h
@@ -74,6 +74,9 @@ extern void abort_hooks(void);
 	}					\
 } while (0)
 
+__attribute__((noinline)) int read_ptr(int *ptr);
+void expected_pkey_fault(int pkey);
+
 #if defined(__i386__) || defined(__x86_64__) /* arch */
 #include "pkey-x86.h"
 #else /* arch */
@@ -172,4 +175,13 @@ static inline void __pkey_write_allow(int pkey, int do_allow_write)
 #define __stringify_1(x...)     #x
 #define __stringify(x...)       __stringify_1(x)
 
+static inline u32 *siginfo_get_pkey_ptr(siginfo_t *si)
+{
+#ifdef si_pkey
+	return &si->si_pkey;
+#else
+	return (u32 *)(((u8 *)si) + si_pkey_offset);
+#endif
+}
+
 #endif /* _PKEYS_HELPER_H */
diff --git a/tools/testing/selftests/vm/pkey-x86.h b/tools/testing/selftests/vm/pkey-x86.h
index def2a1bcf6a5..a0c59d4f7af2 100644
--- a/tools/testing/selftests/vm/pkey-x86.h
+++ b/tools/testing/selftests/vm/pkey-x86.h
@@ -42,6 +42,7 @@
 #endif
 
 #define NR_PKEYS		16
+#define NR_RESERVED_PKEYS	2 /* pkey-0 and exec-only-pkey */
 #define PKEY_BITS_PER_PKEY	2
 #define HPAGE_SIZE		(1UL<<21)
 #define PAGE_SIZE		4096
@@ -158,4 +159,18 @@ int pkey_reg_xstate_offset(void)
 	return xstate_offset;
 }
 
+static inline int get_arch_reserved_keys(void)
+{
+	return NR_RESERVED_PKEYS;
+}
+
+void expect_fault_on_read_execonly_key(void *p1, int pkey)
+{
+	int ptr_contents;
+
+	ptr_contents = read_ptr(p1);
+	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
+	expected_pkey_fault(pkey);
+}
+
 #endif /* _PKEYS_X86_H */
diff --git a/tools/testing/selftests/vm/protection_keys.c b/tools/testing/selftests/vm/protection_keys.c
index 535e464e27e9..57c71056c93d 100644
--- a/tools/testing/selftests/vm/protection_keys.c
+++ b/tools/testing/selftests/vm/protection_keys.c
@@ -1307,9 +1307,7 @@ void test_executing_on_unreadable_memory(int *ptr, u16 pkey)
 	madvise(p1, PAGE_SIZE, MADV_DONTNEED);
 	lots_o_noops_around_write(&scratch);
 	do_not_expect_pkey_fault("executing on PROT_EXEC memory");
-	ptr_contents = read_ptr(p1);
-	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
-	expected_pkey_fault(pkey);
+	expect_fault_on_read_execonly_key(p1, pkey);
 }
 
 void test_implicit_mprotect_exec_only_memory(int *ptr, u16 pkey)
@@ -1336,9 +1334,7 @@ void test_implicit_mprotect_exec_only_memory(int *ptr, u16 pkey)
 	madvise(p1, PAGE_SIZE, MADV_DONTNEED);
 	lots_o_noops_around_write(&scratch);
 	do_not_expect_pkey_fault("executing on PROT_EXEC memory");
-	ptr_contents = read_ptr(p1);
-	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
-	expected_pkey_fault(UNKNOWN_PKEY);
+	expect_fault_on_read_execonly_key(p1, UNKNOWN_PKEY);
 
 	/*
 	 * Put the memory back to non-PROT_EXEC.  Should clear the
-- 
2.17.1


  parent reply	other threads:[~2020-01-20  8:38 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-20  8:35 [PATCH v16 00/23] selftests, powerpc, x86: Memory Protection Keys Sandipan Das
2020-01-20  8:35 ` [PATCH v17 " Sandipan Das
2020-01-20  8:35 ` Sandipan Das
2020-01-20  8:35 ` [PATCH v16 " Sandipan Das
2020-01-20  8:35 ` [PATCH v17 01/24] selftests/x86/pkeys: Move selftests to arch-neutral directory Sandipan Das
2020-01-20  8:35   ` Sandipan Das
2020-01-20  8:35   ` Sandipan Das
2020-01-20  8:35   ` Sandipan Das
2020-01-20  8:35   ` Sandipan Das
2020-01-20  8:35 ` [PATCH v17 02/24] selftests: vm: pkeys: Fix multilib builds for x86 Sandipan Das
2020-01-20  8:35   ` Sandipan Das
2020-01-20  8:35   ` Sandipan Das
2020-01-20  8:35   ` Sandipan Das
2020-01-20  8:35   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 03/24] selftests/vm/pkeys: Rename all references to pkru to a generic name Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 04/24] selftests/vm/pkeys: Move generic definitions to header file Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 05/24] selftests/vm/pkeys: Move some definitions to arch-specific header Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 06/24] selftests/vm/pkeys: Make gcc check arguments of sigsafe_printf() Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 07/24] selftests: vm: pkeys: Use sane types for pkey register Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 08/24] selftests: vm: pkeys: Add helpers for pkey bits Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 09/24] selftests/vm/pkeys: Fix pkey_disable_clear() Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 10/24] selftests/vm/pkeys: Fix assertion in pkey_disable_set/clear() Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 11/24] selftests/vm/pkeys: Fix alloc_random_pkey() to make it really random Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 12/24] selftests: vm: pkeys: Use the correct huge page size Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` Sandipan Das [this message]
2020-01-20  8:36   ` [PATCH v17 13/24] selftests/vm/pkeys: Introduce generic pkey abstractions Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 14/24] selftests/vm/pkeys: Introduce powerpc support Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 15/24] selftests/vm/pkeys: Fix number of reserved powerpc pkeys Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 16/24] selftests/vm/pkeys: Fix assertion in test_pkey_alloc_exhaust() Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 17/24] selftests/vm/pkeys: Improve checks to determine pkey support Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 18/24] selftests/vm/pkeys: Associate key on a mapped page and detect access violation Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 19/24] selftests/vm/pkeys: Associate key on a mapped page and detect write violation Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 20/24] selftests/vm/pkeys: Detect write violation on a mapped access-denied-key page Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 21/24] selftests/vm/pkeys: Introduce a sub-page allocator Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 22/24] selftests/vm/pkeys: Test correct behaviour of pkey-0 Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 23/24] selftests/vm/pkeys: Override access right definitions on powerpc Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36 ` [PATCH v17 24/24] selftests: vm: pkeys: Use the correct page size " Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-20  8:36   ` Sandipan Das
2020-01-22 18:45 ` [PATCH v16 00/23] selftests, powerpc, x86: Memory Protection Keys Dave Hansen
2020-01-22 18:45   ` Dave Hansen
2020-01-27 10:11   ` Sandipan Das
2020-01-27 10:11     ` Sandipan Das
2020-01-27 10:11     ` Sandipan Das
2020-01-27 15:42     ` Dave Hansen
2020-01-27 15:42       ` Dave Hansen
2020-01-28  9:38       ` Sandipan Das
2020-01-28  9:38         ` Sandipan Das
2020-01-29  9:56         ` Sandipan Das
2020-01-29  9:56           ` Sandipan Das
2020-01-29 18:59         ` Dave Hansen
2020-01-29 18:59           ` Dave Hansen
2020-01-30  6:19           ` Sandipan Das
2020-01-30  6:19             ` Sandipan Das
2020-01-30  9:20             ` Sandipan Das
2020-01-30  9:20               ` Sandipan Das
2020-01-29 19:04   ` Florian Weimer
2020-01-29 19:04     ` Florian Weimer
2020-01-29 19:04     ` Florian Weimer

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=8c6354acc5ee9f871d378f8f8d644d3fd5ab3471.1579507768.git.sandipan@linux.ibm.com \
    --to=sandipan@linux.ibm.com \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=bauerman@linux.ibm.com \
    --cc=dave.hansen@intel.com \
    --cc=fweimer@redhat.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=linuxram@us.ibm.com \
    --cc=mhocko@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=msuchanek@suse.de \
    --cc=shuah@kernel.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: link
Be 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.