• Jeff Dike's avatar
    [PATCH] UML: Hotplug memory, take 2 · 02dea087
    Jeff Dike authored
    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: default avatarJeff Dike <jdike@addtoit.com>
    Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    02dea087
os.h 11.1 KB