mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 09:50:04 +00:00
ksm: define MADV_MERGEABLE and MADV_UNMERGEABLE
The out-of-tree KSM used ioctls on fds cloned from /dev/ksm to register a memory area for merging: we prefer now to use an madvise(2) interface. This patch just defines MADV_MERGEABLE (to tell KSM it may merge pages in this area found identical to pages in other mergeable areas) and MADV_UNMERGEABLE (to undo that). Most architectures use asm-generic, but alpha, mips, parisc, xtensa need their own definitions: included here for mmotm convenience, but we'll probably want to split this and feed pieces to arch maintainers. Based upon earlier patches by Chris Wright and Izik Eidus. Signed-off-by: Hugh Dickins <hugh.dickins@tiscali.co.uk> Signed-off-by: Chris Wright <chrisw@redhat.com> Signed-off-by: Izik Eidus <ieidus@redhat.com> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Cc: Richard Henderson <rth@twiddle.net> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Kyle McMartin <kyle@mcmartin.ca> Cc: Helge Deller <deller@gmx.de> Cc: Chris Zankel <chris@zankel.net> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Rik van Riel <riel@redhat.com> Cc: Wu Fengguang <fengguang.wu@intel.com> Cc: Balbir Singh <balbir@in.ibm.com> Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Lee Schermerhorn <lee.schermerhorn@hp.com> Cc: Avi Kivity <avi@redhat.com> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
3866ea90d3
commit
d19f352484
5 changed files with 15 additions and 0 deletions
|
@ -48,6 +48,9 @@
|
||||||
#define MADV_DONTFORK 10 /* don't inherit across fork */
|
#define MADV_DONTFORK 10 /* don't inherit across fork */
|
||||||
#define MADV_DOFORK 11 /* do 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 */
|
||||||
|
|
||||||
/* compatibility flags */
|
/* compatibility flags */
|
||||||
#define MAP_FILE 0
|
#define MAP_FILE 0
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,9 @@
|
||||||
#define MADV_DONTFORK 10 /* don't inherit across fork */
|
#define MADV_DONTFORK 10 /* don't inherit across fork */
|
||||||
#define MADV_DOFORK 11 /* do 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 */
|
||||||
|
|
||||||
/* compatibility flags */
|
/* compatibility flags */
|
||||||
#define MAP_FILE 0
|
#define MAP_FILE 0
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,9 @@
|
||||||
#define MADV_16M_PAGES 24 /* Use 16 Megabyte pages */
|
#define MADV_16M_PAGES 24 /* Use 16 Megabyte pages */
|
||||||
#define MADV_64M_PAGES 26 /* Use 64 Megabyte pages */
|
#define MADV_64M_PAGES 26 /* Use 64 Megabyte pages */
|
||||||
|
|
||||||
|
#define MADV_MERGEABLE 65 /* KSM may merge identical pages */
|
||||||
|
#define MADV_UNMERGEABLE 66 /* KSM may not merge identical pages */
|
||||||
|
|
||||||
/* compatibility flags */
|
/* compatibility flags */
|
||||||
#define MAP_FILE 0
|
#define MAP_FILE 0
|
||||||
#define MAP_VARIABLE 0
|
#define MAP_VARIABLE 0
|
||||||
|
|
|
@ -78,6 +78,9 @@
|
||||||
#define MADV_DONTFORK 10 /* don't inherit across fork */
|
#define MADV_DONTFORK 10 /* don't inherit across fork */
|
||||||
#define MADV_DOFORK 11 /* do 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 */
|
||||||
|
|
||||||
/* compatibility flags */
|
/* compatibility flags */
|
||||||
#define MAP_FILE 0
|
#define MAP_FILE 0
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,9 @@
|
||||||
#define MADV_DONTFORK 10 /* don't inherit across fork */
|
#define MADV_DONTFORK 10 /* don't inherit across fork */
|
||||||
#define MADV_DOFORK 11 /* do 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 */
|
||||||
|
|
||||||
/* compatibility flags */
|
/* compatibility flags */
|
||||||
#define MAP_FILE 0
|
#define MAP_FILE 0
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue