linux/arch/um/include
Jeff Dike 02dea0875b [PATCH] UML: Hotplug memory, take 2
Changes since first version
	added check for MADV_REMOVE support on the host
	fixed error return botch
	shrunk sprintf array by one character

This adds hotplug memory support to UML.  The mconsole syntax is
 	config mem=[+-]n[KMG]
In other words, add or subtract some number of kilobytes, megabytes, or
gigabytes.

Unplugged pages are allocated and then madvise(MADV_TRUNCATE), which is a
currently experimental madvise extension.  These pages are tracked so they
can be plugged back in later if the admin decides to give them back.  The
first page to be unplugged is used to keep track of about 4M of other
pages.  A list_head is the first thing on this page.  The rest is filled
with addresses of other unplugged pages.  This first page is not madvised,
obviously.

When this page is filled, the next page is used in a similar way and linked
onto a list with the first page.  Etc.  This whole process reverses when
pages are plugged back in.  When a tracking page no longer tracks any
unplugged pages, then it is next in line for plugging, which is done by
freeing pages back to the kernel.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:50 -08:00
..
skas [PATCH] uml: oS header cleanups 2006-03-27 08:44:38 -08:00
sysdep-i386 return statement cleanup - kill pointless parentheses 2006-01-15 02:37:08 +01:00
sysdep-ia64 [PATCH] uml: S390 preparation, abstract host page fault data 2005-05-05 16:36:36 -07:00
sysdep-ppc [PATCH] uml: S390 preparation, abstract host page fault data 2005-05-05 16:36:36 -07:00
sysdep-x86_64 [PATCH] uml: fix missing KBUILD_BASENAME 2006-01-11 18:42:09 -08:00
tt [PATCH] uml: move headers to arch/um/include 2006-01-18 19:20:19 -08:00
aio.h [PATCH] uml: revert block driver use of host AIO 2005-10-12 08:22:26 -07:00
chan_kern.h [PATCH] uml: Add throttling to console driver 2006-01-06 08:33:46 -08:00
chan_user.h [PATCH] uml console channels: fix the API of console_write 2005-11-13 18:14:14 -08:00
choose-mode.h [PATCH] uml: better diagnostics for broken configs 2006-01-06 08:33:47 -08:00
common-offsets.h [PATCH] uml makefiles sanitized 2005-09-29 08:46:26 -07:00
elf_user.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
frame_kern.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
init.h [PATCH] uml: fix ((unused)) attribute 2006-02-24 14:31:37 -08:00
initrd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq_kern.h [PATCH] uml: use host AIO support 2005-09-05 00:06:23 -07:00
irq_user.h [PATCH] uml: move libc-dependent irq code to os-Linux 2006-03-27 08:44:37 -08:00
kern_util.h [PATCH] uml: avoid "CONFIG_NR_CPUS undeclared" bogus error messages 2006-02-01 08:53:23 -08:00
kern.h [PATCH] uml: fix declaration of exit() 2006-03-27 08:44:37 -08:00
line.h [PATCH] uml: Add throttling to console driver 2006-01-06 08:33:46 -08:00
longjmp.h [PATCH] uml: use setjmp/longjmp instead of sigsetjmp/siglongjmp 2006-01-18 19:20:20 -08:00
mconsole_kern.h [PATCH] uml: hot-unplug code cleanup 2005-06-25 16:24:36 -07:00
mconsole.h [PATCH] uml: add mconsole_reply variant with length param 2006-01-06 08:33:47 -08:00
mem_kern.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mem_user.h [PATCH] UML: Hotplug memory, take 2 2006-03-31 12:18:50 -08:00
mem.h [PATCH] uml: inline mk_pte and various friends 2005-09-10 12:00:18 -07:00
misc_constants.h [PATCH] uml: move libc-dependent irq code to os-Linux 2006-03-27 08:44:37 -08:00
mode_kern.h [PATCH] uml: move headers to arch/um/include 2006-01-18 19:20:19 -08:00
mode.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
net_kern.h [PATCH] missing platform_device.h includes 2005-11-01 21:50:01 -08:00
net_user.h [PATCH] uml: fix UML network driver endianness bugs 2005-11-07 07:53:30 -08:00
os.h [PATCH] UML: Hotplug memory, take 2 2006-03-31 12:18:50 -08:00
process.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ptrace_user.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
registers.h [PATCH] uml: initialize process FP registers properly 2006-02-07 16:12:32 -08:00
sigcontext.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigio.h [PATCH] uml: move sigio_user.c to os-Linux/sigio.c 2006-03-27 08:44:38 -08:00
signal_kern.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
skas_ptrace.h [PATCH] uml: header and code cleanup 2005-05-05 16:36:39 -07:00
skas_ptregs.h [PATCH] uml makefiles sanitized 2005-09-29 08:46:26 -07:00
syscall.h [PATCH] uml: system call path cleanup 2005-09-05 00:06:23 -07:00
sysrq.h [PATCH] uml: stack dump fix 2005-05-28 16:46:13 -07:00
task.h [PATCH] uml makefiles sanitized 2005-09-29 08:46:26 -07:00
tempfile.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tlb.h [PATCH] mm: uml kill unused 2005-10-29 21:40:42 -07:00
ubd_user.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
um_mmu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
um_uaccess.h [PATCH] uml: fix compile error for tt 2005-12-12 08:57:43 -08:00
umid.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
uml_uaccess.h [PATCH] uml: separate libc-dependent uaccess code 2005-11-07 07:53:31 -08:00
user_util.h [PATCH] uml: move sigio_user.c to os-Linux/sigio.c 2006-03-27 08:44:38 -08:00
user.h [PATCH] uml: avoid malloc to sleep in atomic sections 2006-01-18 19:20:21 -08:00