summaryrefslogtreecommitdiff
path: root/simulator/opendc-experiments/opendc-experiments-capelin
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-04-15 14:13:14 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-04-15 14:25:24 +0200
commite68046465d39611259fa13952add731e80ea7331 (patch)
treea5c74ae02a812e050f4feec778f274705ce66076 /simulator/opendc-experiments/opendc-experiments-capelin
parent288c6c18c24b27dee230d31f0dd036b199722302 (diff)
exp: Prevent re-use of SimWorkload in experiment
This change fixes and issue where a SimWorkload was being re-used across simulation runs. Given that SimWorkload is stateless, this may cause strange issues.
Diffstat (limited to 'simulator/opendc-experiments/opendc-experiments-capelin')
-rw-r--r--simulator/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt4
1 files changed, 3 insertions, 1 deletions
diff --git a/simulator/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt b/simulator/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt
index 997eba0c..763234f8 100644
--- a/simulator/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt
+++ b/simulator/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt
@@ -41,6 +41,7 @@ import org.opendc.format.environment.EnvironmentReader
import org.opendc.format.trace.TraceReader
import org.opendc.simulator.compute.SimFairShareHypervisorProvider
import org.opendc.simulator.compute.interference.PerformanceInterferenceModel
+import org.opendc.simulator.compute.workload.SimTraceWorkload
import org.opendc.simulator.compute.workload.SimWorkload
import org.opendc.simulator.failures.CorrelatedFaultInjector
import org.opendc.simulator.failures.FaultInjector
@@ -261,6 +262,7 @@ public suspend fun processTrace(
delay(max(0, (entry.start - offset) - clock.millis()))
launch {
chan.send(Unit)
+ val workload = SimTraceWorkload((entry.meta["workload"] as SimTraceWorkload).trace)
val server = client.newServer(
entry.name,
image,
@@ -269,7 +271,7 @@ public suspend fun processTrace(
entry.meta["cores"] as Int,
entry.meta["required-memory"] as Long
),
- meta = entry.meta
+ meta = entry.meta + mapOf("workload" to workload)
)
suspendCancellableCoroutine { cont ->