summaryrefslogtreecommitdiff
path: root/opendc/opendc-compute/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2020-04-12 23:34:40 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-04-12 23:34:40 +0200
commit0b70599086ce8397fead00e2c69ed8922ecc84b7 (patch)
treee3b1a046866a0847bd66f077e554127ae1c61c38 /opendc/opendc-compute/src
parent29b2865db32d53f04b6b3066e137f27226b39c20 (diff)
bug: Adjust requested burst for run duration
Diffstat (limited to 'opendc/opendc-compute/src')
-rw-r--r--opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/driver/SimpleVirtDriver.kt7
1 files changed, 4 insertions, 3 deletions
diff --git a/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/driver/SimpleVirtDriver.kt b/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/driver/SimpleVirtDriver.kt
index 1edba7ed..730d49f5 100644
--- a/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/driver/SimpleVirtDriver.kt
+++ b/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/driver/SimpleVirtDriver.kt
@@ -274,7 +274,8 @@ class SimpleVirtDriver(
continue
}
- // The total burst that the VMs wanted to run in the time-frame that we ran.
+ // The total requested burst that the VMs wanted to run in the time-frame that we ran.
+ val totalRequestedSubBurst = min(totalRequestedBurst, ceil(totalRequestedUsage * duration).toLong())
val totalRemainder = burst.sum()
val totalGrantedBurst = totalAllocatedBurst - totalRemainder
@@ -331,8 +332,8 @@ class SimpleVirtDriver(
eventFlow.emit(
HypervisorEvent.SliceFinished(
this@SimpleVirtDriver,
- totalRequestedBurst,
- min(totalRequestedBurst, totalGrantedBurst), // We can run more than requested due to timing
+ totalRequestedSubBurst,
+ min(totalRequestedSubBurst, totalGrantedBurst), // We can run more than requested due to timing
totalOvercommissionedBurst,
totalInterferedBurst, // Might be smaller than zero due to FP rounding errors,
totalAllocatedUsage,