• Juergen Gross's avatar
    xen: let alloc_xenballooned_pages() fail if not enough memory free · a1078e82
    Juergen Gross authored
    Instead of trying to allocate pages with GFP_USER in
    add_ballooned_pages() check the available free memory via
    si_mem_available(). GFP_USER is far less limiting memory exhaustion
    than the test via si_mem_available().
    
    This will avoid dom0 running out of memory due to excessive foreign
    page mappings especially on ARM and on x86 in PVH mode, as those don't
    have a pre-ballooned area which can be used for foreign mappings.
    
    As the normal ballooning suffers from the same problem don't balloon
    down more than si_mem_available() pages in one iteration. At the same
    time limit the default maximum number of retries.
    
    This is part of XSA-300.
    Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
    a1078e82
balloon.c 18.1 KB