[PATCH mmotm] ksm: antidote to MADV_MERGEABLE HWPOISON

From: Hugh Dickins
Date: Fri Aug 21 2009 - 14:30:54 EST


linux-next is now sporting MADV_HWPOISON at 12, which would have a very
nasty effect on KSM if you had CONFIG_MEMORY_FAILURE=y with CONFIG_KSM=y.
Shift MADV_MERGEABLE and MADV_UNMERGEABLE down two - two to reduce the
confusion if old and new userspace and kernel are mismatched.

Personally I'd prefer the MADV_HWPOISON testing feature to shift; but
linux-next comes first in the mmotm lineup, and I can't be sure that
madvise KSM already has more users than there are HWPOISON testers:
so unless Andi is happy to shift MADV_HWPOISON, mmotm needs this.
---
Fix to ksm-define-madv_mergeable-and-madv_unmergeable.patch
parisc unaffected because its MADVs are displaced.

arch/alpha/include/asm/mman.h | 4 ++--
arch/mips/include/asm/mman.h | 4 ++--
arch/xtensa/include/asm/mman.h | 4 ++--
include/asm-generic/mman-common.h | 4 ++--
4 files changed, 8 insertions(+), 8 deletions(-)

--- mmotm/arch/alpha/include/asm/mman.h 2009-08-21 12:08:18.000000000 +0100
+++ linux/arch/alpha/include/asm/mman.h 2009-08-21 18:28:14.000000000 +0100
@@ -48,8 +48,8 @@
#define MADV_DONTFORK 10 /* don't inherit across fork */
#define MADV_DOFORK 11 /* do inherit across fork */

-#define MADV_MERGEABLE 12 /* KSM may merge identical pages */
-#define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */
+#define MADV_MERGEABLE 14 /* KSM may merge identical pages */
+#define MADV_UNMERGEABLE 15 /* KSM may not merge identical pages */

/* compatibility flags */
#define MAP_FILE 0
--- mmotm/arch/mips/include/asm/mman.h 2009-08-21 12:08:18.000000000 +0100
+++ linux/arch/mips/include/asm/mman.h 2009-08-21 18:28:24.000000000 +0100
@@ -71,8 +71,8 @@
#define MADV_DONTFORK 10 /* don't inherit across fork */
#define MADV_DOFORK 11 /* do inherit across fork */

-#define MADV_MERGEABLE 12 /* KSM may merge identical pages */
-#define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */
+#define MADV_MERGEABLE 14 /* KSM may merge identical pages */
+#define MADV_UNMERGEABLE 15 /* KSM may not merge identical pages */

/* compatibility flags */
#define MAP_FILE 0
--- mmotm/arch/xtensa/include/asm/mman.h 2009-08-21 12:08:18.000000000 +0100
+++ linux/arch/xtensa/include/asm/mman.h 2009-08-21 18:28:52.000000000 +0100
@@ -78,8 +78,8 @@
#define MADV_DONTFORK 10 /* don't inherit across fork */
#define MADV_DOFORK 11 /* do inherit across fork */

-#define MADV_MERGEABLE 12 /* KSM may merge identical pages */
-#define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */
+#define MADV_MERGEABLE 14 /* KSM may merge identical pages */
+#define MADV_UNMERGEABLE 15 /* KSM may not merge identical pages */

/* compatibility flags */
#define MAP_FILE 0
--- mmotm/include/asm-generic/mman-common.h 2009-08-21 12:08:18.000000000 +0100
+++ linux/include/asm-generic/mman-common.h 2009-08-21 18:29:01.000000000 +0100
@@ -36,8 +36,8 @@
#define MADV_DOFORK 11 /* do inherit across fork */
#define MADV_HWPOISON 12 /* poison a page for testing */

-#define MADV_MERGEABLE 12 /* KSM may merge identical pages */
-#define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */
+#define MADV_MERGEABLE 14 /* KSM may merge identical pages */
+#define MADV_UNMERGEABLE 15 /* KSM may not merge identical pages */

/* compatibility flags */
#define MAP_FILE 0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/