def test_ctx_switch(self): self.o.ctx_switch = const(100) self.assertEqual(pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 12500) self.assertEqual(self.ts[1].cost, 6500) self.unchanged_period() self.unchanged_deadline()
def test_tick(self): self.o.tick = const(50) self.assertEqual(pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 11500) self.assertEqual(self.ts[1].cost, 6000) self.unchanged_period() self.unchanged_deadline()
def test_cache_affinity_loss(self): self.o.cache_affinity_loss = const(0.5) self.assertEqual(pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 10500) self.assertEqual(self.ts[1].cost, 5000) self.unchanged_period() self.unchanged_deadline()
def test_ipi_latency(self): # IPI latency is irrelevant for Pfair self.o.ipi_latency = const(1000) self.assertEqual(pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 10000) self.assertEqual(self.ts[1].cost, 5000) self.unchanged_period() self.unchanged_deadline()
def test_quant(self): self.assertEqual( pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 10000) self.assertEqual(self.ts[1].cost, 5000) self.unchanged_period() self.unchanged_deadline()
def test_none(self): self.assertEqual(pfair.charge_scheduling_overheads(None, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 9995) self.assertEqual(self.ts[1].cost, 4995) self.assertEqual(self.ts[0].period, 100000) self.assertEqual(self.ts[1].period, 50000) self.assertEqual(self.ts[0].deadline, 100000) self.assertEqual(self.ts[1].deadline, 50000)
def test_release(self): self.o.release = const(50) self.assertEqual(pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 11500) self.assertEqual(self.ts[1].cost, 6000) self.assertEqual(self.ts[0].period, 99000) self.assertEqual(self.ts[1].period, 49000) self.assertEqual(self.ts[0].deadline, 99000) self.assertEqual(self.ts[1].deadline, 49000)
def test_periodic(self): self.assertEqual(pfair.charge_scheduling_overheads(self.o, 4, False, self.ts, aligned_periodic_releases=True), self.ts) self.assertEqual(self.ts[0].cost, 10000) self.assertEqual(self.ts[1].cost, 5000) self.assertEqual(self.ts[0].deadline, 100000) self.assertEqual(self.ts[1].deadline, 50000) self.assertEqual(self.ts[0].period, 100000) self.assertEqual(self.ts[1].period, 50000)
def test_tick(self): self.o.tick = const(50) self.assertEqual( pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 11500) self.assertEqual(self.ts[1].cost, 6000) self.unchanged_period() self.unchanged_deadline()
def test_cache_affinity_loss(self): self.o.cache_affinity_loss = const(0.5) self.assertEqual( pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 10500) self.assertEqual(self.ts[1].cost, 5000) self.unchanged_period() self.unchanged_deadline()
def test_ctx_switch(self): self.o.ctx_switch = const(100) self.assertEqual( pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 12500) self.assertEqual(self.ts[1].cost, 6500) self.unchanged_period() self.unchanged_deadline()
def test_ipi_latency(self): # IPI latency is irrelevant for Pfair self.o.ipi_latency = const(1000) self.assertEqual( pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 10000) self.assertEqual(self.ts[1].cost, 5000) self.unchanged_period() self.unchanged_deadline()
def test_none(self): self.assertEqual( pfair.charge_scheduling_overheads(None, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 9995) self.assertEqual(self.ts[1].cost, 4995) self.assertEqual(self.ts[0].period, 100000) self.assertEqual(self.ts[1].period, 50000) self.assertEqual(self.ts[0].deadline, 100000) self.assertEqual(self.ts[1].deadline, 50000)
def test_release(self): self.o.release = const(50) self.assertEqual( pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 11500) self.assertEqual(self.ts[1].cost, 6000) self.assertEqual(self.ts[0].period, 99000) self.assertEqual(self.ts[1].period, 49000) self.assertEqual(self.ts[0].deadline, 99000) self.assertEqual(self.ts[1].deadline, 49000)
def test_periodic(self): self.assertEqual( pfair.charge_scheduling_overheads(self.o, 4, False, self.ts, aligned_periodic_releases=True), self.ts) self.assertEqual(self.ts[0].cost, 10000) self.assertEqual(self.ts[1].cost, 5000) self.assertEqual(self.ts[0].deadline, 100000) self.assertEqual(self.ts[1].deadline, 50000) self.assertEqual(self.ts[0].period, 100000) self.assertEqual(self.ts[1].period, 50000)
def test_quant(self): self.assertEqual(pfair.charge_scheduling_overheads(self.o, 4, False, self.ts), self.ts) self.assertEqual(self.ts[0].cost, 10000) self.assertEqual(self.ts[1].cost, 5000) self.unchanged_period() self.unchanged_deadline()