xend memory ballooning: do not bother if guest will not fit in

physical memory constraints.

If users require domain memory size larger than a physical memory
size, we do not need waiting for ballooning, and should cause
xm create command error right away.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
This commit is contained in:
Keir Fraser committed 2007-09-25 09:30:00 +01:00
1 parent 66ea95096a
commit 44e7c3aa10
1 file changed
+16
+16
View File
@@ -100,12 +100,28 @@ def free(need_mem):
try:
dom0_min_mem = xoptions.get_dom0_min_mem() * 1024
dom0_alloc = get_dom0_current_alloc()
retries = 0
sleep_time = SLEEP_TIME_GROWTH
new_alloc = 0
last_new_alloc = None
last_free = None
rlimit = RETRY_LIMIT
# If unreasonable memory size is required, we give up waiting
# for ballooning or scrubbing, as if had retried.
physinfo = xc.physinfo()
free_mem = physinfo['free_memory']
scrub_mem = physinfo['scrub_memory']
total_mem = physinfo['total_memory']
if dom0_min_mem > 0:
max_free_mem = total_mem - dom0_min_mem
else:
max_free_mem = total_mem - dom0_alloc
if need_mem >= max_free_mem:
retries = rlimit
while retries < rlimit:
physinfo = xc.physinfo()
free_mem = physinfo['free_memory']
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.