summaryrefslogtreecommitdiff
path: root/opendc/opendc-format/src
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-03-02 17:04:02 +0100
committerGeorgios Andreadis <info@gandreadis.com>2020-03-04 17:51:57 +0100
commit0dd7ae2ed80fb4f581a3e56a3f7d5d4a920a32b7 (patch)
tree4bc16a3aed0703be03f1affec54722cfa2c2ef91 /opendc/opendc-format/src
parent78417251806e079c998380a76ab3533de373289b (diff)
Move performance interference to image tags
Diffstat (limited to 'opendc/opendc-format/src')
-rw-r--r--opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt21
1 files changed, 19 insertions, 2 deletions
diff --git a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt
index 2e881a6c..2867e993 100644
--- a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt
+++ b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt
@@ -28,6 +28,7 @@ import com.atlarge.opendc.compute.core.image.FlopsHistoryFragment
import com.atlarge.opendc.compute.core.image.VmImage
import com.atlarge.opendc.compute.core.workload.VmWorkload
import com.atlarge.opendc.core.User
+import com.atlarge.opendc.core.workload.PerformanceInterferenceModel
import com.atlarge.opendc.format.trace.TraceEntry
import com.atlarge.opendc.format.trace.TraceReader
import java.io.BufferedReader
@@ -39,8 +40,12 @@ import java.util.UUID
* A [TraceReader] for the VM workload trace format.
*
* @param traceDirectory The directory of the traces.
+ * @param performanceInterferenceModel The performance model covering the workload in the VM trace.
*/
-class VmTraceReader(traceDirectory: File) : TraceReader<VmWorkload> {
+class VmTraceReader(
+ traceDirectory: File,
+ performanceInterferenceModel: PerformanceInterferenceModel
+) : TraceReader<VmWorkload> {
/**
* The internal iterator to use for this reader.
*/
@@ -115,9 +120,21 @@ class VmTraceReader(traceDirectory: File) : TraceReader<VmWorkload> {
}
val uuid = UUID(0L, vmId)
+
+ val relevantPerformanceInterferenceModelItems = PerformanceInterferenceModel(
+ performanceInterferenceModel.items.filter { it.workloadIds.contains(uuid) }.toSet()
+ )
+
val vmWorkload = VmWorkload(
uuid, "VM Workload $vmId", UnnamedUser,
- VmImage(uuid, vmId.toString(), emptyMap(), flopsHistory, cores, requiredMemory)
+ VmImage(
+ uuid,
+ vmId.toString(),
+ mapOf("performance-interference" to relevantPerformanceInterferenceModelItems),
+ flopsHistory,
+ cores,
+ requiredMemory
+ )
)
entries[vmId] = TraceEntryImpl(
flopsHistory.firstOrNull()?.tick ?: -1,