From b6153bbf24970a5b4ba103de00e440911dcc8694 Mon Sep 17 00:00:00 2001 From: Dante Niewenhuis Date: Mon, 17 Jun 2024 06:14:32 +0200 Subject: Fixed CPU limit problem (#234) * Fixed a problem which caused the CPU limit to be much lower than it should be. AllocationPolicy is now properly exposed to the user * Fixed tests * spotless kotlin --- .../main/kotlin/org/opendc/compute/simulator/SimHost.kt | 4 ++-- .../kotlin/org/opendc/compute/simulator/SimHostTest.kt | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'opendc-compute') diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt index 00f2acb3..624a612f 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt @@ -96,7 +96,7 @@ public class SimHost( private val model: HostModel = HostModel( - machine.model.cpus.sumOf { it.frequency * it.node.coreCount }, + machine.model.cpus.sumOf { it.frequency }, machine.model.cpus.size, machine.model.cpus.sumOf { it.node.coreCount }, machine.model.memory.sumOf { it.size }, @@ -364,7 +364,7 @@ public class SimHost( private var localUptime = 0L private var localDowntime = 0L private var localBootTime: Instant? = null - private val localCpuLimit = machine.model.cpus.sumOf { it.frequency } + private val localCpuLimit = machine.model.cpus.sumOf { it.frequency * it.node.coreCount } /** * Helper function to track the uptime of a machine. diff --git a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt b/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt index 19bb02ca..8c2ffd0c 100644 --- a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt +++ b/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt @@ -140,9 +140,9 @@ internal class SimHostTest { val cpuStats = host.getCpuStats() assertAll( - { assertEquals(639564, cpuStats.activeTime, "Active time does not match") }, - { assertEquals(2360433, cpuStats.idleTime, "Idle time does not match") }, - { assertEquals(56251, cpuStats.stealTime, "Steal time does not match") }, + { assertEquals(347908, cpuStats.activeTime, "Active time does not match") }, + { assertEquals(2652090, cpuStats.idleTime, "Idle time does not match") }, + { assertEquals(1, cpuStats.stealTime, "Steal time does not match") }, { assertEquals(1499999, timeSource.millis()) }, ) } @@ -237,9 +237,9 @@ internal class SimHostTest { val cpuStats = host.getCpuStats() assertAll( - { assertEquals(658502, cpuStats.activeTime, "Active time does not match") }, - { assertEquals(2341496, cpuStats.idleTime, "Idle time does not match") }, - { assertEquals(637504, cpuStats.stealTime, "Steal time does not match") }, + { assertEquals(629252, cpuStats.activeTime, "Active time does not match") }, + { assertEquals(2370746, cpuStats.idleTime, "Idle time does not match") }, + { assertEquals(18754, cpuStats.stealTime, "Steal time does not match") }, { assertEquals(1499999, timeSource.millis()) }, ) } @@ -318,8 +318,8 @@ internal class SimHostTest { val guestSysStats = host.getSystemStats(server) assertAll( - { assertEquals(1770344, cpuStats.idleTime, "Idle time does not match") }, - { assertEquals(639653, cpuStats.activeTime, "Active time does not match") }, + { assertEquals(2062044, cpuStats.idleTime, "Idle time does not match") }, + { assertEquals(347954, cpuStats.activeTime, "Active time does not match") }, { assertEquals(1204999, sysStats.uptime.toMillis(), "Uptime does not match") }, { assertEquals(300000, sysStats.downtime.toMillis(), "Downtime does not match") }, { assertEquals(1204999, guestSysStats.uptime.toMillis(), "Guest uptime does not match") }, -- cgit v1.2.3