summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configs/example/se.py10
-rw-r--r--src/mem/bus.cc5
2 files changed, 8 insertions, 7 deletions
diff --git a/configs/example/se.py b/configs/example/se.py
index 639bcd7c6..b4b50a013 100644
--- a/configs/example/se.py
+++ b/configs/example/se.py
@@ -100,15 +100,17 @@ system = System(cpu = [CPUClass(cpu_id=i) for i in xrange(np)],
system.physmem.port = system.membus.port
+if options.l2cache:
+ system.l2 = L2Cache(size='2MB')
+ system.tol2bus = Bus()
+ system.l2.cpu_side = system.tol2bus.port
+ system.l2.mem_side = system.membus.port
+
for i in xrange(np):
if options.caches:
system.cpu[i].addPrivateSplitL1Caches(L1Cache(size = '32kB'),
L1Cache(size = '64kB'))
if options.l2cache:
- system.l2 = L2Cache(size='2MB')
- system.tol2bus = Bus()
- system.l2.cpu_side = system.tol2bus.port
- system.l2.mem_side = system.membus.port
system.cpu[i].connectMemPorts(system.tol2bus)
else:
system.cpu[i].connectMemPorts(system.membus)
diff --git a/src/mem/bus.cc b/src/mem/bus.cc
index cc3504e83..6e790e438 100644
--- a/src/mem/bus.cc
+++ b/src/mem/bus.cc
@@ -613,12 +613,11 @@ Bus::drain(Event * de)
//We should check that we're not "doing" anything, and that noone is
//waiting. We might be idle but have someone waiting if the device we
//contacted for a retry didn't actually retry.
- if (curTick >= tickNextIdle && retryList.size() == 0) {
- return 0;
- } else {
+ if (retryList.size() || (curTick < tickNextIdle && busIdle.scheduled())) {
drainEvent = de;
return 1;
}
+ return 0;
}
void