[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-API] [PATCH 1 of 8] [CA-31705] Improves error handling within vm-memory-target-wait



# HG changeset patch
# User Jonathan Knowles <jonathan.knowles@xxxxxxxxxxxxx>
# Date 1264782173 0
# Node ID 46461dc60f7b6a35ec0cc9dcfef7e76adce51f65
# Parent  30154ec586aed04136e324230a1a25889ba23c7e
[CA-31705] Improves error handling within vm-memory-target-wait.

Reformats code to meet OCaml development best practices guide.

Signed-off-by: Jonathan Knowles <jonathan.knowles@xxxxxxxxxxxxx>

diff -r 30154ec586ae -r 46461dc60f7b ocaml/xapi/xapi_vm_helpers.ml
--- a/ocaml/xapi/xapi_vm_helpers.ml     Fri Jan 29 16:17:44 2010 +0000
+++ b/ocaml/xapi/xapi_vm_helpers.ml     Fri Jan 29 16:22:53 2010 +0000
@@ -649,8 +649,8 @@
        ?(timeout_seconds = wait_memory_target_timeout_seconds)
        ?(tolerance_bytes = wait_memory_target_tolerance_bytes)
        () =
-       let raise_error error =
-               raise (Api_errors.Server_error (error, [Ref.string_of 
(Context.get_task_id __context)])) in
+       let raise_error error = raise (Api_errors.Server_error (
+               error, [Ref.string_of (Context.get_task_id __context)])) in
        let rec wait accumulated_wait_time_seconds =
                if accumulated_wait_time_seconds > 
wait_memory_target_timeout_seconds
                        then raise_error 
Api_errors.vm_memory_target_wait_timeout;
@@ -658,28 +658,40 @@
                        then raise_error Api_errors.task_cancelled;
                (* Fetch up-to-date value of memory_actual via a hypercall to 
Xen. *)
                let domain_id = Helpers.domid_of_vm ~__context ~self in
-               let domain_info = Vmopshelpers.with_xc (fun xc -> 
Xc.domain_getinfo xc domain_id) in
-               let memory_actual_pages = Int64.of_nativeint 
domain_info.Xc.total_memory_pages in
-               let memory_actual_kib = Xc.pages_to_kib memory_actual_pages in 
+               let domain_info = Vmopshelpers.with_xc
+                       (fun xc -> Xc.domain_getinfo xc domain_id) in
+               let memory_actual_pages = Int64.of_nativeint
+                       domain_info.Xc.total_memory_pages in
+               let memory_actual_kib = Xc.pages_to_kib memory_actual_pages in
                let memory_actual_bytes = Memory.bytes_of_kib memory_actual_kib 
in
                (* Fetch up-to-date value of target from xenstore. *)
-               let memory_target_kib = Int64.of_string (Vmopshelpers.with_xs 
(fun xs -> xs.Xs.read (xs.Xs.getdomainpath domain_id ^ "/memory/target"))) in
+               let memory_target_kib = Int64.of_string
+                       (Vmopshelpers.with_xs
+                               (fun xs -> xs.Xs.read
+                                       (xs.Xs.getdomainpath domain_id ^ 
"/memory/target"))) in
                let memory_target_bytes = Memory.bytes_of_kib memory_target_kib 
in
-               let difference_bytes = Int64.abs (Int64.sub memory_actual_bytes 
memory_target_bytes) in
-               debug "memory_actual = %Ld; memory_target = %Ld; difference = 
%Ld %s tolerance (%Ld)" memory_actual_bytes memory_target_bytes 
difference_bytes (if difference_bytes <= tolerance_bytes then "<=" else ">") 
tolerance_bytes;
+               let difference_bytes = Int64.abs
+                       (Int64.sub memory_actual_bytes memory_target_bytes) in
+               debug
+                       "memory_actual = %Ld; memory_target = %Ld; \
+                        difference = %Ld %s tolerance (%Ld)"
+                       memory_actual_bytes memory_target_bytes difference_bytes
+                       (if difference_bytes <= tolerance_bytes then "<=" else 
">")
+                       tolerance_bytes;
                if difference_bytes <= tolerance_bytes then
                        (* The memory target has been reached: use the most *)
                        (* recent value of memory_actual to update the same *)
                        (* field within the VM's metrics record, presenting *)
                        (* a consistent view to the world.                  *)
                        let vm_metrics_ref = Db.VM.get_metrics ~__context ~self 
in
-                       Db.VM_metrics.set_memory_actual ~__context 
~self:vm_metrics_ref ~value:memory_actual_bytes
+                       Db.VM_metrics.set_memory_actual ~__context 
~self:vm_metrics_ref
+                               ~value:memory_actual_bytes
                else begin
                        (* At exponentially increasing intervals, write  *)
                        (* a debug message saying how long we've waited: *)
                        if is_power_of_2 accumulated_wait_time_seconds then 
debug
                                "Waited %i second(s) for domain %i to reach \
-                               its target = %Ld bytes; actual = %Ld bytes."
+                                its target = %Ld bytes; actual = %Ld bytes."
                                accumulated_wait_time_seconds domain_id
                                memory_target_bytes memory_actual_bytes;
                        (* The memory target has not yet been reached: *)
1 file changed, 22 insertions(+), 10 deletions(-)
ocaml/xapi/xapi_vm_helpers.ml |   32 ++++++++++++++++++++++----------


Attachment: xen-api.hg-8.patch
Description: Text Data

_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.