changeset 3202eb01e01e in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=3202eb01e01e
description:
Another merge with the main repository.
diffstat:
configs/boot/bbench.rcS | 43
+++++++++
configs/common/Benchmarks.py | 5 +-
configs/common/FSConfig.py | 2 +-
configs/common/Options.py | 6 +-
configs/common/Simulation.py | 6 +-
configs/example/se.py | 6 +-
configs/ruby/MOESI_hammer.py | 3 +-
src/arch/arm/nativetrace.cc | 12 ++-
src/arch/x86/tlb.cc | 6 +-
src/base/remote_gdb.cc | 3 +-
src/cpu/o3/fetch_impl.hh | 4 +-
src/dev/i8254xGBe.cc | 7 +-
src/dev/ide_ctrl.cc | 2 +
src/dev/io_device.cc | 8 +-
src/dev/sinic.cc | 5 +-
src/dev/sparc/mm_disk.cc | 32 +++++--
src/dev/terminal.cc | 8 +-
src/mem/page_table.cc | 8 +-
src/mem/protocol/MESI_CMP_directory-L2cache.sm | 6 -
src/mem/protocol/MESI_CMP_directory-dir.sm | 12 ++-
src/mem/protocol/MI_example-dir.sm | 12 ++-
src/mem/protocol/MOESI_CMP_directory-dir.sm | 12 ++-
src/mem/protocol/MOESI_CMP_token-dir.sm | 12 ++-
src/mem/protocol/MOESI_hammer-dir.sm | 12 ++-
src/mem/protocol/RubySlicc_Types.sm | 1 +
src/mem/ruby/common/Set.hh | 16 +++-
src/mem/ruby/eventqueue/RubyEventQueue.cc | 1 -
src/mem/ruby/network/Network.cc | 1 +
src/mem/ruby/network/Network.hh | 3 +-
src/mem/ruby/network/Topology.cc | 1 -
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc | 1 +
src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc | 1 +
src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.cc | 1 +
src/mem/ruby/network/garnet/fixed-pipeline/RoutingUnit_d.cc | 1 +
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc | 1 +
src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc | 1 +
src/mem/ruby/network/garnet/flexible-pipeline/Router.cc | 1 +
src/mem/ruby/network/simple/PerfectSwitch.cc | 1 +
src/mem/ruby/network/simple/SimpleNetwork.cc | 1 +
src/mem/ruby/network/simple/Switch.cc | 1 +
src/mem/ruby/network/simple/Throttle.cc | 1 +
src/mem/ruby/slicc_interface/AbstractController.cc | 1 +
src/mem/ruby/slicc_interface/AbstractController.hh | 4 -
src/mem/ruby/slicc_interface/AbstractEntry.hh | 2 -
src/mem/ruby/system/AbstractReplacementPolicy.hh | 2 +-
src/mem/ruby/system/Cache.py | 1 +
src/mem/ruby/system/CacheMemory.cc | 1 +
src/mem/ruby/system/DMASequencer.cc | 1 -
src/mem/ruby/system/DirectoryMemory.cc | 44
+++++----
src/mem/ruby/system/DirectoryMemory.hh | 9 +-
src/mem/ruby/system/MemoryControl.cc | 3 +-
src/mem/ruby/system/MemoryControl.hh | 3 -
src/mem/ruby/system/PersistentTable.hh | 1 -
src/mem/ruby/system/SConscript | 2 +-
src/mem/ruby/system/Sequencer.cc | 10 +-
src/mem/ruby/system/SparseMemory.cc | 35 +++----
src/mem/ruby/system/SparseMemory.hh | 6 +-
src/mem/ruby/system/System.hh | 13 --
src/mem/slicc/ast/FormalParamAST.py | 5 +-
src/mem/slicc/ast/LocalVariableAST.py | 4 +-
src/mem/slicc/ast/MemberExprAST.py | 5 +-
src/mem/slicc/ast/MethodCallExprAST.py | 6 +-
src/mem/slicc/ast/PeekStatementAST.py | 2 +-
src/mem/slicc/symbols/StateMachine.py | 8 +-
src/sim/eventq.cc | 8 +
src/sim/eventq.hh | 10 ++
util/hgfilesize.py | 32 +++++++
67 files changed, 313 insertions(+), 171 deletions(-)
diffs (truncated from 1410 to 300 lines):
diff -r a2ae5c378d0a -r 3202eb01e01e configs/boot/bbench.rcS
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/boot/bbench.rcS Sat Jan 07 02:16:37 2012 -0800
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+#Author: Anthony Gutierrez
+
+stop_m5() {
+ echo "FINISHED";
+ /sbin/m5 exit
+
+ return
+}
+
+wait_bb_finishfifo() {
+ echo "<html><head>FINISH</head><body><h1>FINISH</h1></body></html>" >
/data/bbench/finish_fifo.html
+
+ return
+}
+
+mkfifo_bbench() {
+ mkfifo /data/bbench/finish_fifo.html
+
+ return
+}
+
+run_bbench_test() {
+ echo "STARTING BBENCH"
+
+ mkfifo_bbench
+
+ am start -n com.android.browser/.BrowserActivity
+ wait_bb_finishfifo
+
+ echo "END OF BBENCH RUN"
+
+ rm /data/bbench/finish_fifo.html
+ stop_m5
+
+ return
+}
+
+sleep 10
+/sbin/m5 dumpstats
+/sbin/m5 resetstats
+run_bbench_test
diff -r a2ae5c378d0a -r 3202eb01e01e configs/common/Benchmarks.py
--- a/configs/common/Benchmarks.py Sat Jan 07 02:15:35 2012 -0800
+++ b/configs/common/Benchmarks.py Sat Jan 07 02:16:37 2012 -0800
@@ -111,7 +111,10 @@
'ValStreamCopy': [SysConfig('micro_streamcopy.rcS', '512MB')],
'MutexTest': [SysConfig('mutex-test.rcS', '128MB')],
- 'ArmAndroid': [SysConfig('null.rcS', '256MB', 'android-mbr.img')],
+ 'ArmAndroid': [SysConfig('null.rcS', '256MB',
+
'ARMv7a-Gingerbread-Android.SMP.mouse.nolock.clean.img)')],
+ 'bbench': [SysConfig('bbench.rcS', '256MB',
+ 'ARMv7a-Gingerbread-Android.SMP.mouse.nolock.img')]
}
benchs = Benchmarks.keys()
diff -r a2ae5c378d0a -r 3202eb01e01e configs/common/FSConfig.py
--- a/configs/common/FSConfig.py Sat Jan 07 02:15:35 2012 -0800
+++ b/configs/common/FSConfig.py Sat Jan 07 02:16:37 2012 -0800
@@ -252,7 +252,7 @@
self.gic_cpu_addr = self.realview.gic.cpu_addr
self.flags_addr = self.realview.realview_io.pio_addr + 0x30
- if mdesc.disk().count('android'):
+ if mdesc.disk().lower().count('android'):
boot_flags += " init=/init "
self.boot_osflags = boot_flags
diff -r a2ae5c378d0a -r 3202eb01e01e configs/common/Options.py
--- a/configs/common/Options.py Sat Jan 07 02:15:35 2012 -0800
+++ b/configs/common/Options.py Sat Jan 07 02:16:37 2012 -0800
@@ -27,9 +27,9 @@
# Authors: Lisa Hsu
# system options
-parser.add_option("-d", "--detailed", action="store_true")
-parser.add_option("-t", "--timing", action="store_true")
-parser.add_option("--inorder", action="store_true")
+parser.add_option("-c", "--cpu-type", type="choice", default="atomic",
+ choices = ["atomic", "timing", "detailed", "inorder"],
+ help = "type of cpu to run with")
parser.add_option("-n", "--num-cpus", type="int", default=1)
parser.add_option("--caches", action="store_true")
parser.add_option("--l2cache", action="store_true")
diff -r a2ae5c378d0a -r 3202eb01e01e configs/common/Simulation.py
--- a/configs/common/Simulation.py Sat Jan 07 02:15:35 2012 -0800
+++ b/configs/common/Simulation.py Sat Jan 07 02:16:37 2012 -0800
@@ -40,14 +40,14 @@
def setCPUClass(options):
atomic = False
- if options.timing:
+ if options.cpu_type == "timing":
class TmpClass(TimingSimpleCPU): pass
- elif options.detailed:
+ elif options.cpu_type == "detailed":
if not options.caches:
print "O3 CPU must be used with caches"
sys.exit(1)
class TmpClass(DerivO3CPU): pass
- elif options.inorder:
+ elif options.cpu_type == "inorder":
if not options.caches:
print "InOrder CPU must be used with caches"
sys.exit(1)
diff -r a2ae5c378d0a -r 3202eb01e01e configs/example/se.py
--- a/configs/example/se.py Sat Jan 07 02:15:35 2012 -0800
+++ b/configs/example/se.py Sat Jan 07 02:16:37 2012 -0800
@@ -122,7 +122,7 @@
workloads = options.cmd
numThreads = 1
-if options.detailed or options.inorder:
+if options.cpu_type == "detailed" or options.cpu_type == "inorder":
#check for SMT workload
workloads = options.cmd.split(';')
if len(workloads) > 1:
@@ -154,10 +154,10 @@
numThreads = len(workloads)
if options.ruby:
- if options.detailed:
+ if options.cpu_type == "detailed":
print >> sys.stderr, "Ruby only works with TimingSimpleCPU!!"
sys.exit(1)
- elif not options.timing:
+ elif not options.cpu_type == "timing":
print >> sys.stderr, "****WARN: using Timing CPU since it's needed by
Ruby"
class CPUClass(TimingSimpleCPU): pass
diff -r a2ae5c378d0a -r 3202eb01e01e configs/ruby/MOESI_hammer.py
--- a/configs/ruby/MOESI_hammer.py Sat Jan 07 02:15:35 2012 -0800
+++ b/configs/ruby/MOESI_hammer.py Sat Jan 07 02:16:37 2012 -0800
@@ -88,7 +88,8 @@
#
l1i_cache = L1Cache(size = options.l1i_size,
assoc = options.l1i_assoc,
- start_index_bit = block_size_bits)
+ start_index_bit = block_size_bits,
+ is_icache = True)
l1d_cache = L1Cache(size = options.l1d_size,
assoc = options.l1d_assoc,
start_index_bit = block_size_bits)
diff -r a2ae5c378d0a -r 3202eb01e01e src/arch/arm/nativetrace.cc
--- a/src/arch/arm/nativetrace.cc Sat Jan 07 02:15:35 2012 -0800
+++ b/src/arch/arm/nativetrace.cc Sat Jan 07 02:16:37 2012 -0800
@@ -156,18 +156,23 @@
// Regular int regs
for (int i = 0; i < STATE_NUMVALS; i++) {
if (nState.changed[i] || mState.changed[i]) {
- const char *vergence = " ";
bool oldMatch = (mState.oldState[i] == nState.oldState[i]);
bool newMatch = (mState.newState[i] == nState.newState[i]);
if (oldMatch && newMatch) {
// The more things change, the more they stay the same.
continue;
- } else if (oldMatch && !newMatch) {
+ }
+
+ errorFound = true;
+
+#ifndef NDEBUG
+ const char *vergence = " ";
+ if (oldMatch && !newMatch) {
vergence = "<>";
} else if (!oldMatch && newMatch) {
vergence = "><";
}
- errorFound = true;
+
if (!nState.changed[i]) {
DPRINTF(ExecRegDelta, "%s [%5s] "\
"Native: %#010x "\
@@ -190,6 +195,7 @@
nState.oldState[i], nState.newState[i],
mState.oldState[i], mState.newState[i]);
}
+#endif
}
}
if (errorFound) {
diff -r a2ae5c378d0a -r 3202eb01e01e src/arch/x86/tlb.cc
--- a/src/arch/x86/tlb.cc Sat Jan 07 02:15:35 2012 -0800
+++ b/src/arch/x86/tlb.cc Sat Jan 07 02:16:37 2012 -0800
@@ -322,6 +322,9 @@
DPRINTF(TLB, "Miss was serviced.\n");
}
}
+
+ DPRINTF(TLB, "Entry found with paddr %#x, "
+ "doing protection checks.\n", entry->paddr);
// Do paging protection checks.
bool inUser = (m5Reg.cpl == 3 &&
!(flags & (CPL0FlagBit << FlagShift)));
@@ -339,9 +342,6 @@
return new PageFault(vaddr, true, Write, inUser, false);
}
-
- DPRINTF(TLB, "Entry found with paddr %#x, "
- "doing protection checks.\n", entry->paddr);
Addr paddr = entry->paddr | (vaddr & (entry->size-1));
DPRINTF(TLB, "Translated %#x -> %#x.\n", vaddr, paddr);
req->setPaddr(paddr);
diff -r a2ae5c378d0a -r 3202eb01e01e src/base/remote_gdb.cc
--- a/src/base/remote_gdb.cc Sat Jan 07 02:15:35 2012 -0800
+++ b/src/base/remote_gdb.cc Sat Jan 07 02:16:37 2012 -0800
@@ -644,8 +644,7 @@
bufferSize = gdbregs.bytes() * 2 + 256;
buffer = (char*)malloc(bufferSize);
- TheISA::PCState pc = context->pcState();
- DPRINTF(GDBMisc, "trap: PC=%s\n", pc);
+ DPRINTF(GDBMisc, "trap: PC=%s\n", context->pcState());
clearSingleStep();
diff -r a2ae5c378d0a -r 3202eb01e01e src/cpu/o3/fetch_impl.hh
--- a/src/cpu/o3/fetch_impl.hh Sat Jan 07 02:15:35 2012 -0800
+++ b/src/cpu/o3/fetch_impl.hh Sat Jan 07 02:16:37 2012 -0800
@@ -1051,8 +1051,8 @@
if (fetchStatus[tid] != Squashing) {
- TheISA::PCState nextPC = fromDecode->decodeInfo[tid].nextPC;
- DPRINTF(Fetch, "Squashing from decode with PC = %s\n", nextPC);
+ DPRINTF(Fetch, "Squashing from decode with PC = %s\n",
+ fromDecode->decodeInfo[tid].nextPC);
// Squash unless we're already squashing
squashFromDecode(fromDecode->decodeInfo[tid].nextPC,
fromDecode->decodeInfo[tid].squashInst,
diff -r a2ae5c378d0a -r 3202eb01e01e src/dev/i8254xGBe.cc
--- a/src/dev/i8254xGBe.cc Sat Jan 07 02:15:35 2012 -0800
+++ b/src/dev/i8254xGBe.cc Sat Jan 07 02:16:37 2012 -0800
@@ -2118,11 +2118,12 @@
// iteration we'll get the rest of the data
if (txPacket && txDescCache.packetAvailable()
&& !txDescCache.packetMultiDesc() && txPacket->length) {
- bool success;
-
anQ("TXS", "TX FIFO Q");
DPRINTF(EthernetSM, "TXS: packet placed in TX FIFO\n");
- success = txFifo.push(txPacket);
+#ifndef NDEBUG
+ bool success =
+#endif
+ txFifo.push(txPacket);
txFifoTick = true && !drainEvent;
assert(success);
txPacket = NULL;
diff -r a2ae5c378d0a -r 3202eb01e01e src/dev/ide_ctrl.cc
--- a/src/dev/ide_ctrl.cc Sat Jan 07 02:15:35 2012 -0800
+++ b/src/dev/ide_ctrl.cc Sat Jan 07 02:16:37 2012 -0800
@@ -490,6 +490,7 @@
panic("IDE controller access to invalid address: %#x\n", addr);
}
+#ifndef NDEBUG
uint32_t data;
if (pkt->getSize() == 1)
data = pkt->get<uint8_t>();
@@ -499,6 +500,7 @@
data = pkt->get<uint32_t>();
DPRINTF(IdeCtrl, "%s from offset: %#x size: %#x data: %#x\n",
read ? "Read" : "Write", pkt->getAddr(), pkt->getSize(), data);
+#endif
pkt->makeAtomicResponse();
}
diff -r a2ae5c378d0a -r 3202eb01e01e src/dev/io_device.cc
--- a/src/dev/io_device.cc Sat Jan 07 02:15:35 2012 -0800
+++ b/src/dev/io_device.cc Sat Jan 07 02:16:37 2012 -0800
@@ -142,13 +142,9 @@
pkt->reinitNacked();
queueDma(pkt, true);
+ } else if (pkt->isRequest() && recvSnoops) {
+ return true;
} else if (pkt->senderState) {
- if (recvSnoops) {
- if (pkt->isRequest()) {
- return true;
- }
- }
-
DmaReqState *state;
backoffTime >>= 2;
diff -r a2ae5c378d0a -r 3202eb01e01e src/dev/sinic.cc
--- a/src/dev/sinic.cc Sat Jan 07 02:15:35 2012 -0800
+++ b/src/dev/sinic.cc Sat Jan 07 02:16:37 2012 -0800
@@ -33,6 +33,7 @@
#include <string>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev