Exemplo n.º 1
0
 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()
Exemplo n.º 2
0
 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()
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
 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()
Exemplo n.º 5
0
 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()
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 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)
Exemplo n.º 9
0
 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()
Exemplo n.º 10
0
 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()
Exemplo n.º 11
0
 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()
Exemplo n.º 12
0
 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()
Exemplo n.º 13
0
 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)
Exemplo n.º 14
0
 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)
Exemplo n.º 15
0
 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)
Exemplo n.º 16
0
 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()