[haizea-commit] r598 - branches/TP2.0/src/haizea/core/scheduler
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Fri Jul 3 09:18:59 CDT 2009
Author: borja
Date: 2009-07-03 09:18:57 -0500 (Fri, 03 Jul 2009)
New Revision: 598
Modified:
branches/TP2.0/src/haizea/core/scheduler/lease_scheduler.py
branches/TP2.0/src/haizea/core/scheduler/resourcepool.py
branches/TP2.0/src/haizea/core/scheduler/vm_scheduler.py
Log:
Preemption is working again.
Modified: branches/TP2.0/src/haizea/core/scheduler/lease_scheduler.py
===================================================================
--- branches/TP2.0/src/haizea/core/scheduler/lease_scheduler.py 2009-07-03 11:19:38 UTC (rev 597)
+++ branches/TP2.0/src/haizea/core/scheduler/lease_scheduler.py 2009-07-03 14:18:57 UTC (rev 598)
@@ -198,7 +198,7 @@
except RescheduleLeaseException, exc:
# Currently, the only leases that get rescheduled are best-effort leases,
# once they've been suspended.
- if isinstance(rr.lease, BestEffortLease):
+ if rr.lease.get_type() == Lease.BEST_EFFORT:
if lease.get_state() == Lease.STATE_SUSPENDED_PENDING:
# Put back in the queue, in the same order it arrived
self.__enqueue_in_order(lease)
Modified: branches/TP2.0/src/haizea/core/scheduler/resourcepool.py
===================================================================
--- branches/TP2.0/src/haizea/core/scheduler/resourcepool.py 2009-07-03 11:19:38 UTC (rev 597)
+++ branches/TP2.0/src/haizea/core/scheduler/resourcepool.py 2009-07-03 14:18:57 UTC (rev 598)
@@ -66,7 +66,7 @@
# Add memory image files
for vnode in rr.vnodes:
pnode = rr.vmrr.nodes[vnode]
- self.add_ramfile(pnode, lease.id, vnode, lease.requested_resources.get_by_type(constants.RES_MEM))
+ self.add_ramfile(pnode, lease.id, vnode, lease.requested_resources[vnode].get_by_type(constants.RES_MEM))
# Enact suspend
suspend_action = actions.VMEnactmentSuspendAction()
Modified: branches/TP2.0/src/haizea/core/scheduler/vm_scheduler.py
===================================================================
--- branches/TP2.0/src/haizea/core/scheduler/vm_scheduler.py 2009-07-03 11:19:38 UTC (rev 597)
+++ branches/TP2.0/src/haizea/core/scheduler/vm_scheduler.py 2009-07-03 14:18:57 UTC (rev 598)
@@ -350,7 +350,7 @@
self.__schedule_suspension(vmrr, t)
self.slottable.update_reservation_with_key_change(vmrr, old_start, old_end)
for susprr in vmrr.post_rrs:
- self.slottable.addReservation(susprr)
+ self.slottable.add_reservation(susprr)
def slideback(self, lease, earliest):
vmrr = lease.get_last_vmrr()
@@ -522,7 +522,7 @@
t_prev = None
for vnode in vnodes_in_pnode[pnode]:
if override == None:
- mem = vmrr.lease.requested_resources.get_by_type(constants.RES_MEM)
+ mem = vmrr.lease.requested_resources[vnode].get_by_type(constants.RES_MEM)
op_time = self.__compute_suspend_resume_time(mem, rate)
else:
op_time = override
@@ -619,7 +619,9 @@
for (pnode,vnodes) in node_mappings.items():
num_vnodes = len(vnodes)
r = ResourceTuple.create_empty()
- mem = vmrr.lease.requested_resources.get_by_type(constants.RES_MEM)
+ mem = 0
+ for vnode in vnodes:
+ mem += vmrr.lease.requested_resources[vnode].get_by_type(constants.RES_MEM)
r.set_by_type(constants.RES_MEM, mem * num_vnodes)
r.set_by_type(constants.RES_DISK, mem * num_vnodes)
suspres[pnode] = r
@@ -638,7 +640,7 @@
# If there are any post RRs, remove them
for rr in vmrr.post_rrs:
- self.slottable.removeReservation(rr)
+ self.slottable.remove_reservation(rr)
vmrr.post_rrs = []
for susprr in suspend_rrs:
@@ -661,7 +663,9 @@
for (pnode,vnodes) in node_mappings.items():
num_vnodes = len(vnodes)
r = ResourceTuple.create_empty()
- mem = vmrr.lease.requested_resources.get_by_type(constants.RES_MEM)
+ mem = 0
+ for vnode in vnodes:
+ mem += vmrr.lease.requested_resources[vnode].get_by_type(constants.RES_MEM)
r.set_by_type(constants.RES_MEM, mem * num_vnodes)
r.set_by_type(constants.RES_DISK, mem * num_vnodes)
resmres[pnode] = r
@@ -688,7 +692,9 @@
def __estimate_suspend_resume_time(self, lease, rate):
susp_exclusion = get_config().get("suspendresume-exclusion")
enactment_overhead = get_config().get("enactment-overhead")
- mem = lease.requested_resources.get_by_type(constants.RES_MEM)
+ mem = 0
+ for vnode in lease.requested_resources:
+ mem += lease.requested_resources[vnode].get_by_type(constants.RES_MEM)
if susp_exclusion == constants.SUSPRES_EXCLUSION_GLOBAL:
return lease.numnodes * (self.__compute_suspend_resume_time(mem, rate) + enactment_overhead)
elif susp_exclusion == constants.SUSPRES_EXCLUSION_LOCAL:
More information about the Haizea-commit
mailing list