|
|
|
|
|
|
|
|
|
|
xen-api
[Xen-API] [PATCH 2 of 8] [CA-39589] After a VM suspend operation, Xapi n
# HG changeset patch
# User Jonathan Knowles <jonathan.knowles@xxxxxxxxxxxxx>
# Date 1269859680 -3600
# Node ID 4a9675ecf42df55895f201e2e7928d4ff0c6fc7f
# Parent 56f91be468e5704a0d7b0e7b7c5e2481b46aa12f
[CA-39589] After a VM suspend operation, Xapi now reverses any destructive
update it makes to XenStore's copy of dynamic-max.
This changeset replaces a "try x catch y" expression with a "finally x y"
expression.
Signed-off-by: Jonathan Knowles <jonathan.knowles@xxxxxxxxxxxxx>
Acked-by: Marcus Granado <Marcus.Granado@xxxxxxxxxxxxx>
diff -r 56f91be468e5 -r 4a9675ecf42d ocaml/xapi/vmops.ml
--- a/ocaml/xapi/vmops.ml Mon Mar 29 11:47:59 2010 +0100
+++ b/ocaml/xapi/vmops.ml Mon Mar 29 11:48:00 2010 +0100
@@ -904,7 +904,7 @@
let max = Db.VM.get_memory_dynamic_max
~__context ~self:vm in
let min = Int64.to_int (Int64.div min
1024L) in
let max = Int64.to_int (Int64.div max
1024L) in
- try
+ finally (fun () ->
(* Balloon down the guest as
far as we can to force it to clear unnecessary caches etc. *)
debug "suspend phase 0/4:
asking guest to balloon down";
Domain.set_memory_dynamic_range
~xs ~min ~max:min domid;
@@ -960,13 +960,12 @@
let final_memory_bytes =
Memory.bytes_of_pages (Int64.of_nativeint di.Xc.total_memory_pages) in
debug "total_memory_pages=%Ld;
storing target=%Ld" (Int64.of_nativeint di.Xc.total_memory_pages)
final_memory_bytes;
(* CA-31759: avoid using the
LBR to simplify upgrade *)
- Db.VM.set_memory_target
~__context ~self:vm ~value:final_memory_bytes;
- with e ->
+ Db.VM.set_memory_target
~__context ~self:vm ~value:final_memory_bytes;)
+ (fun () ->
Domain.set_memory_dynamic_range
~xs ~min ~max domid;
Memory_control.balance_memory
~__context ~xc ~xs;
if is_paused then
- (try Domain.pause ~xc
domid with _ -> ());
- raise e))
+ (try Domain.pause ~xc
domid with _ -> ()))))
let resume ~__context ~xc ~xs ~vm =
let domid = Helpers.domid_of_vm ~__context ~self:vm in
1 file changed, 4 insertions(+), 5 deletions(-)
ocaml/xapi/vmops.ml | 9 ++++-----
xen-api.hg-8.patch
Description: Text Data
_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-API] [PATCH 0 of 8] [CA-39589] After a VM suspend operation, Xapi now reverses any destructive update it makes to XenStore's copy of dynamic-max., Jonathan Knowles
- [Xen-API] [PATCH 2 of 8] [CA-39589] After a VM suspend operation, Xapi now reverses any destructive update it makes to XenStore's copy of dynamic-max,
Jonathan Knowles <=
- [Xen-API] [PATCH 5 of 8] [CA-39589] Refactoring: extracts out the "suspend_domain" function from a deeply nested block, Jonathan Knowles
- [Xen-API] [PATCH 1 of 8] [CA-39589] Fixes confusing code structure, which made it hard to discern the true execution path through a relatively long and deeply nested function, Jonathan Knowles
- [Xen-API] [PATCH 4 of 8] [CA-39589] Refactoring: extracts out the "handle_death" function from a deeply nested block, Jonathan Knowles
- [Xen-API] [PATCH 3 of 8] [CA-39589] Refactoring: lifts a number of definitions out of a deeply nested block, Jonathan Knowles
- [Xen-API] [PATCH 7 of 8] [CA-39589] Refactoring: extracts out the "do_final_actions_after_suspend" function from a deeply-nested block, Jonathan Knowles
- [Xen-API] [PATCH 6 of 8] [CA-39589] Refactoring: extracts out the "do_suspend" function from a deeply-nested block, Jonathan Knowles
- [Xen-API] [PATCH 8 of 8] [CA-39589] Refactoring: flattens a number of nested function applications, Jonathan Knowles
|
|
|
|
|