mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
xend: Give back memory to dom0 after a failed auto-balloon attempt.
Signed-off-by: Frank van der Linden <frank.vanderlinden@sun.com>
This commit is contained in:
1 parent
ab52a83704
commit
bd99184d54
1 file changed
+6
-2
@@ -94,7 +94,9 @@ def free(need_mem):
|
||||
# track the last used value so that we don't trigger too many watches.
|
||||
|
||||
xoptions = XendOptions.instance()
|
||||
dom0 = XendDomain.instance().privilegedDomain()
|
||||
xc = xen.lowlevel.xc.xc()
|
||||
dom0_start_alloc_mb = get_dom0_current_alloc() / 1024
|
||||
|
||||
try:
|
||||
dom0_min_mem = xoptions.get_dom0_min_mem() * 1024
|
||||
@@ -133,7 +135,6 @@ def free(need_mem):
|
||||
new_alloc_mb = new_alloc / 1024 # Round down
|
||||
log.debug("Balloon: setting dom0 target to %d MiB.",
|
||||
new_alloc_mb)
|
||||
dom0 = XendDomain.instance().privilegedDomain()
|
||||
dom0.setMemoryTarget(new_alloc_mb)
|
||||
last_new_alloc = new_alloc
|
||||
# Continue to retry, waiting for ballooning or scrubbing.
|
||||
@@ -158,7 +159,10 @@ def free(need_mem):
|
||||
(need_mem, dom0_min_mem, dom0_min_mem,
|
||||
free_mem + scrub_mem + dom0_alloc - dom0_min_mem))
|
||||
else:
|
||||
raise VmError('The privileged domain did not balloon!')
|
||||
dom0.setMemoryTarget(dom0_start_alloc_mb)
|
||||
raise VmError(
|
||||
('Not enough memory is available, and dom0 cannot'
|
||||
' be shrunk any further'))
|
||||
|
||||
finally:
|
||||
del xc
|
||||