[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] fail domU creation if memory need couldn't be succeed after ballooning out dom0
# HG changeset patch # User vh249@xxxxxxxxxxxxxxxxxxxxxx # Node ID a064307524625d6e7bffb84933cbe120998ba581 # Parent 02789fed726a599d2ef5e009ad48f219cf5feffe fail domU creation if memory need couldn't be succeed after ballooning out dom0 Signed-off-by: Vincent Hanquez <vincent@xxxxxxxxxxxxx> diff -r 02789fed726a -r a06430752462 tools/python/xen/xm/create.py --- a/tools/python/xen/xm/create.py Wed Aug 17 23:11:56 2005 +++ b/tools/python/xen/xm/create.py Thu Aug 18 01:13:49 2005 @@ -23,6 +23,7 @@ import sys import socket import commands +import time import xen.lowlevel.xc @@ -674,18 +675,33 @@ return 0 def balloon_out(dom0_min_mem, opts): - """Balloon out to get memory for domU, if necessarily""" + """Balloon out memory from dom0 if necessary""" SLACK = 4 + timeout = 20 # 2s + ret = 0 xc = xen.lowlevel.xc.new() pinfo = xc.physinfo() - free_mem = pinfo['free_pages']/256 - if free_mem < opts.vals.memory + SLACK: - need_mem = opts.vals.memory + SLACK - free_mem - cur_alloc = get_dom0_alloc() - if cur_alloc - need_mem >= dom0_min_mem: - server.xend_domain_mem_target_set(0, cur_alloc - need_mem) + free_mem = pinfo['free_pages'] / 256 + domU_need_mem = opts.vals.memory + SLACK + + dom0_cur_alloc = get_dom0_alloc() + dom0_new_alloc = dom0_cur_alloc - (domU_need_mem - free_mem) + + if free_mem < domU_need_mem and dom0_new_alloc >= dom0_min_mem: + + server.xend_domain_mem_target_set(0, dom0_new_alloc) + + while dom0_cur_alloc > dom0_new_alloc and timeout > 0: + time.sleep(0.1) # sleep 100ms + dom0_cur_alloc = get_dom0_alloc() + timeout -= 1 + + if dom0_cur_alloc > dom0_new_alloc: + ret = 1 + del xc + return ret def main(argv): random.seed() @@ -717,7 +733,8 @@ else: dom0_min_mem = xroot.get_dom0_min_mem() if dom0_min_mem != 0: - balloon_out(dom0_min_mem, opts) + if balloon_out(dom0_min_mem, opts): + return dom = make_domain(opts, config) if opts.vals.console_autoconnect: _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |