if (pm->extension<simgrid::vm::VmHostExt>() == nullptr)
pm->extension_set(new simgrid::vm::VmHostExt());
if (pm->extension<simgrid::vm::VmHostExt>() == nullptr)
pm->extension_set(new simgrid::vm::VmHostExt());
- xbt_dynar_t dyn_vms = pm->pimpl_->getVms();
- {
- unsigned int cursor = 0;
- sg_host_t another_vm;
- xbt_dynar_foreach(dyn_vms, cursor, another_vm) {
- long another_vm_ramsize = host_get_ramsize(vm, nullptr);
- total_ramsize_of_vms += another_vm_ramsize;
- }
- }
+ for (simgrid::surf::VirtualMachineImpl* ws_vm : simgrid::surf::VirtualMachineImpl::allVms_)
+ if (pm == ws_vm->getPm())
+ total_ramsize_of_vms += ws_vm->getRamsize();
if (vm_ramsize > pm_ramsize - total_ramsize_of_vms) {
XBT_WARN("cannnot start %s@%s due to memory shortage: vm_ramsize %ld, free %ld, pm_ramsize %ld (bytes).",
sg_host_get_name(vm), sg_host_get_name(pm),
vm_ramsize, pm_ramsize - total_ramsize_of_vms, pm_ramsize);
if (vm_ramsize > pm_ramsize - total_ramsize_of_vms) {
XBT_WARN("cannnot start %s@%s due to memory shortage: vm_ramsize %ld, free %ld, pm_ramsize %ld (bytes).",
sg_host_get_name(vm), sg_host_get_name(pm),
vm_ramsize, pm_ramsize - total_ramsize_of_vms, pm_ramsize);