let start_vm xc xs state =
maybe (fun cfg -> state.vm_next_cfg <- None; state.vm_cfg <- cfg) state.vm_next_cfg;
-
let cfg = state.vm_cfg in
if not cfg.no_mem_check then (
let requested_kib = Memory.required_to_boot cfg.hvm cfg.vcpus cfg.memory cfg.memory 1. in
- if not (Memory.wait_xen_free_mem ~xc requested_kib) then
- raise (Not_enough_free_memory cfg);
+ if not (Memory.wait_xen_free_mem ~xc requested_kib) then (
+ let avail_kib = Memory.get_free_memory_kib ~xc in
+ warn "failed to reserve enough memory, requested %Ld, available %Ld" requested_kib avail_kib;
+ raise (Not_enough_free_memory cfg)
+ )
);
let from_scratch =