[m5-dev] Cron m5t...@zizzer /z/m5/regression/do-regression quick
* build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-atomic passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-atomic passed. * build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-timing-mp passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing passed. * build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-timing passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/o3-timing passed. * build/ALPHA_SE/tests/fast/quick/01.hello-2T-smt/alpha/linux/o3-timing passed. * build/ALPHA_SE/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-atomic passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-timing passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/o3-timing passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/inorder-timing passed. * build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-atomic-mp passed. * build/ALPHA_SE_MOESI_hammer/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_hammer passed. * build/ALPHA_SE_MOESI_hammer/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_hammer passed. * build/ALPHA_SE_MOESI_hammer/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_hammer passed. * build/ALPHA_SE_MOESI_hammer/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_hammer passed. * build/ALPHA_SE_MESI_CMP_directory/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MESI_CMP_directory passed. * build/ALPHA_SE_MESI_CMP_directory/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MESI_CMP_directory passed. * build/ALPHA_SE_MESI_CMP_directory/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby-MESI_CMP_directory passed. * build/ALPHA_SE_MESI_CMP_directory/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby-MESI_CMP_directory passed. * build/ALPHA_SE_MOESI_CMP_directory/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_directory passed. * build/ALPHA_SE_MOESI_CMP_directory/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_directory passed. * build/ALPHA_SE_MOESI_CMP_directory/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_directory passed. * build/ALPHA_SE_MOESI_CMP_directory/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory passed. * build/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby passed. * build/ALPHA_SE_MOESI_CMP_token/tests/fast/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_token passed. * build/ALPHA_SE_MOESI_CMP_token/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_token passed. * build/ALPHA_SE_MOESI_CMP_token/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_token passed. * build/ALPHA_SE_MOESI_CMP_token/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_token passed. * build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual passed. * build/ALPHA_FS/tests/fast/quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic passed. * build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-timing passed. * build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic passed. * build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-timing-ruby passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-atomic passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-timing passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/o3-timing passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/inorder-timing passed. * build/POWER_SE/tests/fast/quick/00.hello/power/linux/simple-atomic passed. * build/POWER_SE/tests/fast/quick/00.hello/power/linux/o3-timing passed. * build/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest passed. * build/SPARC_SE/tests/fast/quick/40.m5threads-test-atomic/sparc/linux/simple-atomic-mp passed. * build/SPARC_SE/tests/fast/quick/40.m5threads-test-atomic/sparc/linux/simple-timing-mp passed. * build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-timing passed. * build/SPARC_SE/tests/fast/quick/40.m5threads-test-atomic/sparc/linux/o3-timing-mp passed. * build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/simple-atomic passed. * build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-timing-ruby passed. *
[m5-dev] changeset in m5: sim: Use forward declarations for ports.
changeset ee4ac00d0774 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=ee4ac00d0774 description: sim: Use forward declarations for ports. Virtual ports need TLB data which means anything touching a file in the arch directory rebuilds any file that includes system.hh which in everything. diffstat: src/arch/alpha/freebsd/system.cc | 5 +++-- src/arch/alpha/linux/system.cc | 6 +++--- src/arch/alpha/stacktrace.cc | 1 + src/arch/alpha/system.cc | 17 + src/arch/alpha/tru64/system.cc | 3 ++- src/arch/arm/linux/system.cc | 4 +++- src/arch/arm/stacktrace.cc | 1 + src/arch/arm/system.cc | 1 - src/arch/mips/system.cc | 10 +- src/base/remote_gdb.cc | 1 + src/cpu/simple_thread.cc | 1 + src/dev/simple_disk.cc | 2 +- src/dev/sparc/iob.cc | 1 + src/sim/system.cc| 15 --- src/sim/system.hh| 7 --- 15 files changed, 43 insertions(+), 32 deletions(-) diffs (truncated from 358 to 300 lines): diff -r c10bc8ad3f97 -r ee4ac00d0774 src/arch/alpha/freebsd/system.cc --- a/src/arch/alpha/freebsd/system.cc Sat Nov 06 17:48:58 2010 -0700 +++ b/src/arch/alpha/freebsd/system.cc Mon Nov 08 13:58:22 2010 -0600 @@ -43,6 +43,7 @@ #include cpu/thread_context.hh #include mem/physical.hh #include mem/port.hh +#include mem/vport.hh #include sim/byteswap.hh #define TIMER_FREQUENCY 1193180 @@ -77,8 +78,8 @@ ppc_vaddr = (Addr)tc-readIntReg(17); timer_vaddr = (Addr)tc-readIntReg(18); -virtPort.write(ppc_vaddr, (uint32_t)SimClock::Frequency); -virtPort.write(timer_vaddr, (uint32_t)TIMER_FREQUENCY); +virtPort-write(ppc_vaddr, (uint32_t)SimClock::Frequency); +virtPort-write(timer_vaddr, (uint32_t)TIMER_FREQUENCY); } void diff -r c10bc8ad3f97 -r ee4ac00d0774 src/arch/alpha/linux/system.cc --- a/src/arch/alpha/linux/system.ccSat Nov 06 17:48:58 2010 -0700 +++ b/src/arch/alpha/linux/system.ccMon Nov 08 13:58:22 2010 -0600 @@ -77,7 +77,7 @@ * Since we aren't using a bootloader, we have to copy the * kernel arguments directly into the kernel's memory. */ -virtPort.writeBlob(CommandLine(), (uint8_t*)params()-boot_osflags.c_str(), +virtPort-writeBlob(CommandLine(), (uint8_t*)params()-boot_osflags.c_str(), params()-boot_osflags.length()+1); /** @@ -86,7 +86,7 @@ * calculated it by using the PIT, RTC, etc. */ if (kernelSymtab-findAddress(est_cycle_freq, addr)) -virtPort.write(addr, (uint64_t)(SimClock::Frequency / +virtPort-write(addr, (uint64_t)(SimClock::Frequency / p-boot_cpu_frequency)); @@ -97,7 +97,7 @@ * 255 ASNs. */ if (kernelSymtab-findAddress(dp264_mv, addr)) -virtPort.write(addr + 0x18, LittleEndianGuest::htog((uint32_t)127)); +virtPort-write(addr + 0x18, LittleEndianGuest::htog((uint32_t)127)); else panic(could not find dp264_mv\n); diff -r c10bc8ad3f97 -r ee4ac00d0774 src/arch/alpha/stacktrace.cc --- a/src/arch/alpha/stacktrace.cc Sat Nov 06 17:48:58 2010 -0700 +++ b/src/arch/alpha/stacktrace.cc Mon Nov 08 13:58:22 2010 -0600 @@ -37,6 +37,7 @@ #include base/trace.hh #include cpu/base.hh #include cpu/thread_context.hh +#include mem/vport.hh #include sim/system.hh using namespace std; diff -r c10bc8ad3f97 -r ee4ac00d0774 src/arch/alpha/system.cc --- a/src/arch/alpha/system.cc Sat Nov 06 17:48:58 2010 -0700 +++ b/src/arch/alpha/system.cc Mon Nov 08 13:58:22 2010 -0600 @@ -38,6 +38,7 @@ #include base/loader/symtab.hh #include base/trace.hh #include mem/physical.hh +#include mem/vport.hh #include params/AlphaSystem.hh #include sim/byteswap.hh @@ -65,8 +66,8 @@ // Load program sections into memory -pal-loadSections(functionalPort, loadAddrMask); -console-loadSections(functionalPort, loadAddrMask); +pal-loadSections(functionalPort, loadAddrMask); +console-loadSections(functionalPort, loadAddrMask); // load symbols if (!console-loadGlobalSymbols(consoleSymtab)) @@ -99,7 +100,7 @@ * others do.) */ if (consoleSymtab-findAddress(env_booted_osflags, addr)) { -virtPort.writeBlob(addr, (uint8_t*)params()-boot_osflags.c_str(), +virtPort-writeBlob(addr, (uint8_t*)params()-boot_osflags.c_str(), strlen(params()-boot_osflags.c_str())); } @@ -110,9 +111,9 @@ if (consoleSymtab-findAddress(m5_rpb, addr)) { uint64_t data; data = htog(params()-system_type); -virtPort.write(addr+0x50, data); +virtPort-write(addr+0x50, data); data = htog(params()-system_rev); -virtPort.write(addr+0x58, data); +virtPort-write(addr+0x58, data); } else panic(could not find hwrpb\n); } @@ -168,8 +169,8 @@ // lda gp,Y(gp): opcode 8, Ra = 29, rb =
[m5-dev] changeset in m5: ARM/Alpha/Cpu: Change prefetchs to be more like...
changeset 00ea9430643b in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=00ea9430643b description: ARM/Alpha/Cpu: Change prefetchs to be more like normal loads. This change modifies the way prefetches work. They are now like normal loads that don't writeback a register. Previously prefetches were supposed to call prefetch() on the exection context, so they executed with execute() methods instead of initiateAcc() completeAcc(). The prefetch() methods for all the CPUs are blank, meaning that they get executed, but don't actually do anything. On Alpha dead cache copy code was removed and prefetches are now normal ops. They count as executed operations, but still don't do anything and IsMemRef is not longer set on them. On ARM IsDataPrefetch or IsInstructionPreftech is now set on all prefetch instructions. The timing simple CPU doesn't try to do anything special for prefetches now and they execute with the normal memory code path. diffstat: src/arch/alpha/isa/decoder.isa | 16 + src/arch/alpha/isa/mem.isa |9 +- src/arch/arm/isa/insts/ldr.isa | 27 --- src/arch/mips/isa/formats/mem.isa |7 +- src/cpu/base_dyn_inst.hh|5 - src/cpu/base_dyn_inst_impl.hh | 67 --- src/cpu/checker/cpu.cc | 12 --- src/cpu/checker/cpu.hh | 14 src/cpu/exec_context.hh |9 -- src/cpu/inorder/cpu.cc | 15 src/cpu/inorder/cpu.hh | 10 -- src/cpu/inorder/inorder_dyn_inst.cc | 32 - src/cpu/inorder/inorder_dyn_inst.hh |4 - src/cpu/inorder/resource.hh |6 - src/cpu/inorder/resources/cache_unit.cc | 37 -- src/cpu/inorder/resources/cache_unit.hh |4 - src/cpu/ozone/cpu.hh| 14 src/cpu/ozone/cpu_impl.hh | 89 - src/cpu/simple/base.cc | 112 src/cpu/simple/base.hh |7 -- src/cpu/simple/timing.cc| 15 +++- src/cpu/static_inst.hh |2 + 22 files changed, 41 insertions(+), 472 deletions(-) diffs (truncated from 807 to 300 lines): diff -r ba11187e2582 -r 00ea9430643b src/arch/alpha/isa/decoder.isa --- a/src/arch/alpha/isa/decoder.isaMon Nov 08 13:58:22 2010 -0600 +++ b/src/arch/alpha/isa/decoder.isaMon Nov 08 13:58:22 2010 -0600 @@ -47,11 +47,6 @@ 0x23: ldt({{ Fa = Mem.df; }}); 0x2a: ldl_l({{ Ra.sl = Mem.sl; }}, mem_flags = LLSC); 0x2b: ldq_l({{ Ra.uq = Mem.uq; }}, mem_flags = LLSC); -#ifdef USE_COPY -0x20: MiscPrefetch::copy_load({{ EA = Ra; }}, - {{ fault = xc-copySrcTranslate(EA); }}, - inst_flags = [IsMemRef, IsLoad, IsCopy]); -#endif } format LoadOrPrefetch { @@ -71,11 +66,6 @@ 0x0f: stq_u({{ Mem.uq = Ra.uq; }}, {{ EA = (Rb + disp) ~7; }}); 0x26: sts({{ Mem.ul = t_to_s(Fa.uq); }}); 0x27: stt({{ Mem.df = Fa; }}); -#ifdef USE_COPY -0x24: MiscPrefetch::copy_store({{ EA = Rb; }}, - {{ fault = xc-copy(EA); }}, - inst_flags = [IsMemRef, IsStore, IsCopy]); -#endif } format StoreCond { @@ -788,10 +778,8 @@ format MiscPrefetch { 0xf800: wh64({{ EA = Rb ~ULL(63); }}, - {{ xc-writeHint(EA, 64, memAccessFlags); }}, - mem_flags = PREFETCH, - inst_flags = [IsMemRef, IsDataPrefetch, - IsStore, MemWriteOp]); + {{ ; }}, + mem_flags = PREFETCH); } format BasicOperate { diff -r ba11187e2582 -r 00ea9430643b src/arch/alpha/isa/mem.isa --- a/src/arch/alpha/isa/mem.isaMon Nov 08 13:58:22 2010 -0600 +++ b/src/arch/alpha/isa/mem.isaMon Nov 08 13:58:22 2010 -0600 @@ -396,6 +396,7 @@ %(op_rd)s; %(ea_code)s; +warn_once(Prefetch instrutions is Alpha do not do anything\n); if (fault == NoFault) { %(memacc_code)s; } @@ -404,6 +405,8 @@ } }}; +// Prefetches in Alpha don't actually do anything +// They just build an effective address and complete def template MiscInitiateAcc {{ Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc, Trace::InstRecord *traceData) const @@ -530,12 +533,10 @@ inst_flags = makeList(inst_flags) pf_mem_flags = mem_flags + pf_flags + ['PREFETCH'] -pf_inst_flags = inst_flags + ['IsMemRef', 'IsLoad', - 'IsDataPrefetch', 'MemReadOp'] +pf_inst_flags =
[m5-dev] changeset in m5: ARM: Make all ARM uops delayed commit.
changeset ba11187e2582 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=ba11187e2582 description: ARM: Make all ARM uops delayed commit. diffstat: src/arch/arm/insts/macromem.hh | 6 -- src/arch/arm/isa/templates/mem.isa | 19 +++ src/cpu/static_inst.hh | 2 ++ 3 files changed, 21 insertions(+), 6 deletions(-) diffs (154 lines): diff -r ee4ac00d0774 -r ba11187e2582 src/arch/arm/insts/macromem.hh --- a/src/arch/arm/insts/macromem.hhMon Nov 08 13:58:22 2010 -0600 +++ b/src/arch/arm/insts/macromem.hhMon Nov 08 13:58:22 2010 -0600 @@ -73,12 +73,6 @@ public: void -setDelayedCommit() -{ -flags[IsDelayedCommit] = true; -} - -void advancePC(PCState pcState) const { if (flags[IsLastMicroop]) { diff -r ee4ac00d0774 -r ba11187e2582 src/arch/arm/isa/templates/mem.isa --- a/src/arch/arm/isa/templates/mem.isaMon Nov 08 13:58:22 2010 -0600 +++ b/src/arch/arm/isa/templates/mem.isaMon Nov 08 13:58:22 2010 -0600 @@ -917,6 +917,7 @@ assert(numMicroops = 2); uops = new StaticInstPtr[numMicroops]; uops[0] = new %(acc_name)s(machInst, _base, _mode, _wb); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; uops[1]-setLastMicroop(); #endif @@ -934,6 +935,7 @@ assert(numMicroops = 2); uops = new StaticInstPtr[numMicroops]; uops[0] = new %(acc_name)s(machInst, _regMode, _mode, _wb); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; uops[1]-setLastMicroop(); #endif @@ -963,6 +965,7 @@ assert(numMicroops = 2); uops = new StaticInstPtr[numMicroops]; uops[0] = new %(acc_name)s(machInst, _dest, _dest2, _base, _add, _imm); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; uops[1]-setLastMicroop(); #endif @@ -984,6 +987,7 @@ uops = new StaticInstPtr[numMicroops]; uops[0] = new %(acc_name)s(machInst, _result, _dest, _dest2, _base, _add, _imm); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; uops[1]-setLastMicroop(); #endif @@ -1001,6 +1005,7 @@ assert(numMicroops = 2); uops = new StaticInstPtr[numMicroops]; uops[0] = new %(acc_name)s(machInst, _dest, _base, _add, _imm); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; uops[1]-setLastMicroop(); #endif @@ -1021,6 +1026,7 @@ uops = new StaticInstPtr[numMicroops]; uops[0] = new %(acc_name)s(machInst, _result, _dest, _base, _add, _imm); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; uops[1]-setLastMicroop(); #endif @@ -1043,6 +1049,7 @@ uops = new StaticInstPtr[numMicroops]; uops[0] = new %(acc_name)s(machInst, _dest, _dest2, _base, _add, _shiftAmt, _shiftType, _index); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; uops[1]-setLastMicroop(); #endif @@ -1064,6 +1071,7 @@ uops = new StaticInstPtr[numMicroops]; uops[0] = new %(acc_name)s(machInst, _dest, _base, _add, _shiftAmt, _shiftType, _index); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; uops[1]-setLastMicroop(); #endif @@ -1087,14 +1095,17 @@ if ((_dest == _index) || (_dest2 == _index)) { IntRegIndex wbIndexReg = INTREG_UREG0; uops[0] = new MicroUopRegMov(machInst, INTREG_UREG0, _index); +uops[0]-setDelayedCommit(); uops[1] = new %(acc_name)s(machInst, _dest, _dest2, _base, _add, _shiftAmt, _shiftType, _index); +uops[1]-setDelayedCommit(); uops[2] = new %(wb_decl)s; uops[2]-setLastMicroop(); } else { IntRegIndex wbIndexReg = index; uops[0] = new %(acc_name)s(machInst, _dest, _dest2, _base, _add, _shiftAmt, _shiftType, _index); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; uops[1]-setLastMicroop(); } @@ -1119,20 +1130,25 @@ IntRegIndex wbIndexReg = index; uops[0] = new %(acc_name)s(machInst, INTREG_UREG0, _base, _add, _shiftAmt, _shiftType, _index); +uops[0]-setDelayedCommit(); uops[1] = new %(wb_decl)s; +uops[1]-setDelayedCommit(); uops[2] = new MicroUopRegMov(machInst, INTREG_PC, INTREG_UREG0); uops[2]-setLastMicroop(); } else if(_dest == _index) { IntRegIndex wbIndexReg = INTREG_UREG0; uops[0] = new MicroUopRegMov(machInst, INTREG_UREG0, _index); +
[m5-dev] changeset in m5: ARM/Alpha/Cpu: Stats change for prefetchs to be...
changeset 0d9de7394e38 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=0d9de7394e38 description: ARM/Alpha/Cpu: Stats change for prefetchs to be more like normal loads. diffstat: tests/long/00.gzip/ref/alpha/tru64/o3-timing/config.ini | 4 +- tests/long/00.gzip/ref/alpha/tru64/o3-timing/simout |14 +- tests/long/00.gzip/ref/alpha/tru64/o3-timing/stats.txt | 642 +- tests/long/00.gzip/ref/alpha/tru64/simple-atomic/config.ini | 2 +- tests/long/00.gzip/ref/alpha/tru64/simple-atomic/simerr | 3 + tests/long/00.gzip/ref/alpha/tru64/simple-atomic/simout |11 +- tests/long/00.gzip/ref/alpha/tru64/simple-atomic/stats.txt |10 +- tests/long/00.gzip/ref/alpha/tru64/simple-timing/config.ini | 4 +- tests/long/00.gzip/ref/alpha/tru64/simple-timing/simout |12 +- tests/long/00.gzip/ref/alpha/tru64/simple-timing/stats.txt |10 +- tests/long/10.linux-boot/ref/alpha/linux/tsunami-o3-dual/config.ini |12 +- tests/long/10.linux-boot/ref/alpha/linux/tsunami-o3-dual/simout |17 +- tests/long/10.linux-boot/ref/alpha/linux/tsunami-o3-dual/stats.txt | 1782 +- tests/long/10.linux-boot/ref/alpha/linux/tsunami-o3/config.ini |12 +- tests/long/10.linux-boot/ref/alpha/linux/tsunami-o3/simout |17 +- tests/long/10.linux-boot/ref/alpha/linux/tsunami-o3/stats.txt | 979 ++-- tests/long/30.eon/ref/alpha/tru64/o3-timing/config.ini | 4 +- tests/long/30.eon/ref/alpha/tru64/o3-timing/simout |14 +- tests/long/30.eon/ref/alpha/tru64/o3-timing/stats.txt | 590 +- tests/long/30.eon/ref/alpha/tru64/simple-atomic/config.ini | 2 +- tests/long/30.eon/ref/alpha/tru64/simple-atomic/simerr | 3 + tests/long/30.eon/ref/alpha/tru64/simple-atomic/simout |11 +- tests/long/30.eon/ref/alpha/tru64/simple-atomic/stats.txt |10 +- tests/long/30.eon/ref/alpha/tru64/simple-timing/config.ini | 4 +- tests/long/30.eon/ref/alpha/tru64/simple-timing/simout |12 +- tests/long/30.eon/ref/alpha/tru64/simple-timing/stats.txt |10 +- tests/long/40.perlbmk/ref/alpha/tru64/o3-timing/config.ini | 4 +- tests/long/40.perlbmk/ref/alpha/tru64/o3-timing/simout |14 +- tests/long/40.perlbmk/ref/alpha/tru64/o3-timing/stats.txt | 616 +- tests/long/40.perlbmk/ref/alpha/tru64/simple-atomic/config.ini | 2 +- tests/long/40.perlbmk/ref/alpha/tru64/simple-atomic/simerr | 3 + tests/long/40.perlbmk/ref/alpha/tru64/simple-atomic/simout |11 +- tests/long/40.perlbmk/ref/alpha/tru64/simple-atomic/stats.txt |10 +- tests/long/40.perlbmk/ref/alpha/tru64/simple-timing/config.ini | 4 +- tests/long/40.perlbmk/ref/alpha/tru64/simple-timing/simout |12 +- tests/long/40.perlbmk/ref/alpha/tru64/simple-timing/stats.txt |10 +- tests/long/50.vortex/ref/alpha/tru64/inorder-timing/config.ini | 4 +- tests/long/50.vortex/ref/alpha/tru64/inorder-timing/simerr | 4 - tests/long/50.vortex/ref/alpha/tru64/inorder-timing/simout |12 +- tests/long/50.vortex/ref/alpha/tru64/inorder-timing/stats.txt |24 +- tests/long/50.vortex/ref/alpha/tru64/o3-timing/config.ini | 4 +- tests/long/50.vortex/ref/alpha/tru64/o3-timing/simout |14 +- tests/long/50.vortex/ref/alpha/tru64/o3-timing/stats.txt | 636 +- tests/long/50.vortex/ref/alpha/tru64/simple-atomic/config.ini | 2 +- tests/long/50.vortex/ref/alpha/tru64/simple-atomic/simerr | 3 +
[m5-dev] changeset in m5: scons: add a parameter to configure SCons' buil...
changeset e40fbbe1ed4f in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=e40fbbe1ed4f description: scons: add a parameter to configure SCons' build cache diffstat: SConstruct | 7 +++ 1 files changed, 7 insertions(+), 0 deletions(-) diffs (24 lines): diff -r 0d9de7394e38 -r e40fbbe1ed4f SConstruct --- a/SConstructMon Nov 08 13:58:24 2010 -0600 +++ b/SConstructMon Nov 08 13:58:24 2010 -0600 @@ -312,6 +312,7 @@ ('CXX', 'C++ compiler', environ.get('CXX', main['CXX'])), ('BATCH', 'Use batch pool for build and tests', False), ('BATCH_CMD', 'Batch pool submission command name', 'qdo'), +('M5_BUILD_CACHE', 'Cache built objects in this directory', False), ('EXTRAS', 'Add Extra directories to the compilation', '', PathListAllExist, PathListMakeAbsolute), ) @@ -549,6 +550,12 @@ main.Append(CPPPATH=py_includes) main.Append(LIBPATH=py_lib_path) +# Cache build files in the supplied directory. +if main['M5_BUILD_CACHE']: +print 'Using build cache located at', main['M5_BUILD_CACHE'] +CacheDir(main['M5_BUILD_CACHE']) + + # verify that this stuff works if not conf.CheckHeader('Python.h', ''): print Error: can't find Python.h header in, py_includes ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] changeset in m5: ARM: Don't return the result of a table walk th...
changeset cf9db1c47a77 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=cf9db1c47a77 description: ARM: Don't return the result of a table walk the same cycle it's completed. The L1 cache may have been accessed to provide this data, which confuses it, if it ends up being accesses twice in one cycle. Instead wait 1 tick which will force the timing simple CPU to forward to its next clock cycle when the translation completes. Also prevent multiple outstanding table walks from occuring at once. diffstat: src/arch/arm/table_walker.cc | 71 +++ src/arch/arm/table_walker.hh | 12 +++ 2 files changed, 75 insertions(+), 8 deletions(-) diffs (192 lines): diff -r e40fbbe1ed4f -r cf9db1c47a77 src/arch/arm/table_walker.cc --- a/src/arch/arm/table_walker.cc Mon Nov 08 13:58:24 2010 -0600 +++ b/src/arch/arm/table_walker.cc Mon Nov 08 13:58:24 2010 -0600 @@ -41,13 +41,14 @@ #include arch/arm/table_walker.hh #include arch/arm/tlb.hh #include dev/io_device.hh +#include cpu/base.hh #include cpu/thread_context.hh using namespace ArmISA; TableWalker::TableWalker(const Params *p) -: MemObject(p), port(NULL), tlb(NULL), - currState(NULL), doL1DescEvent(this), doL2DescEvent(this) +: MemObject(p), port(NULL), tlb(NULL), currState(NULL), pending(false), + doL1DescEvent(this), doL2DescEvent(this), doProcessEvent(this) { sctlr = 0; } @@ -115,6 +116,35 @@ currState-isFetch = (currState-mode == TLB::Execute); currState-isWrite = (currState-mode == TLB::Write); + +if (!currState-timing) +return processWalk(); + +if (pending) { +pendingQueue.push_back(currState); +currState = NULL; +} else { +pending = true; +processWalk(); +} + +return NoFault; +} + +void +TableWalker::processWalkWrapper() +{ +assert(!currState); +assert(pendingQueue.size()); +currState = pendingQueue.front(); +pendingQueue.pop_front(); +pending = true; +processWalk(); +} + +Fault +TableWalker::processWalk() +{ Addr ttbr = 0; // If translation isn't enabled, we shouldn't be here @@ -146,6 +176,9 @@ if (currState-timing) { currState-transState-finish(f, currState-req, currState-tc, currState-mode); + +pending = false; +nextWalk(currState-tc); currState = NULL; } else { currState-tc = NULL; @@ -156,7 +189,8 @@ if (currState-timing) { port-dmaAction(MemCmd::ReadReq, l1desc_addr, sizeof(uint32_t), -doL1DescEvent, (uint8_t*)currState-l1Desc.data, (Tick)0); +doL1DescEvent, (uint8_t*)currState-l1Desc.data, +currState-tc-getCpuPtr()-ticks(1)); DPRINTF(TLBVerbose, Adding to walker fifo: queue size before adding: %d\n, stateQueueL1.size()); stateQueueL1.push_back(currState); @@ -167,7 +201,8 @@ flag = Request::UNCACHEABLE; } port-dmaAction(MemCmd::ReadReq, l1desc_addr, sizeof(uint32_t), -NULL, (uint8_t*)currState-l1Desc.data, (Tick)0, flag); +NULL, (uint8_t*)currState-l1Desc.data, +currState-tc-getCpuPtr()-ticks(1), flag); doL1Descriptor(); f = currState-fault; } @@ -498,10 +533,12 @@ if (currState-timing) { currState-delayed = true; port-dmaAction(MemCmd::ReadReq, l2desc_addr, sizeof(uint32_t), -doL2DescEvent, (uint8_t*)currState-l2Desc.data, 0); +doL2DescEvent, (uint8_t*)currState-l2Desc.data, +currState-tc-getCpuPtr()-ticks(1)); } else { port-dmaAction(MemCmd::ReadReq, l2desc_addr, sizeof(uint32_t), -NULL, (uint8_t*)currState-l2Desc.data, 0); +NULL, (uint8_t*)currState-l2Desc.data, +currState-tc-getCpuPtr()-ticks(1)); doL2Descriptor(); } return; @@ -589,6 +626,9 @@ currState-transState-finish(currState-fault, currState-req, currState-tc, currState-mode); +pending = false; +nextWalk(currState-tc); + currState-req = NULL; currState-tc = NULL; currState-delayed = false; @@ -600,10 +640,12 @@ currState-fault = tlb-translateTiming(currState-req, currState-tc, currState-transState, currState-mode); +pending = false; +nextWalk(currState-tc); + currState-req = NULL; currState-tc = NULL; currState-delayed = false; - delete currState; } else { // need to do L2 descriptor @@ -633,15 +675,28 @@ currState-transState, currState-mode); } + +
[m5-dev] changeset in m5: Bus: Have the I/O devices that return address r...
changeset d3c006ecccd3 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=d3c006ecccd3 description: Bus: Have the I/O devices that return address ranges print them out. This way we actually get device names associated with the devices. diffstat: src/dev/io_device.cc | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diffs (20 lines): diff -r cf9db1c47a77 -r d3c006ecccd3 src/dev/io_device.cc --- a/src/dev/io_device.cc Mon Nov 08 13:58:24 2010 -0600 +++ b/src/dev/io_device.cc Mon Nov 08 13:58:24 2010 -0600 @@ -51,6 +51,8 @@ { snoop = false; device-addressRanges(resp); +for (AddrRangeIter i = resp.begin(); i != resp.end(); i++) + DPRINTF(BusAddrRanges, Adding Range %#x-%#x\n, i-start, i-end); } @@ -95,6 +97,7 @@ { assert(pioSize != 0); range_list.clear(); +DPRINTF(BusAddrRanges, registering range: %#x-%#x\n, pioAddr, pioSize); range_list.push_back(RangeSize(pioAddr, pioSize)); } ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] changeset in m5: Mem: Finish half-baked support for mmaping file...
changeset 982b4c6c1470 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=982b4c6c1470 description: Mem: Finish half-baked support for mmaping file in physmem. Physmem has a parameter to be able to mem map a file, however it isn't actually used. This changeset utilizes the parameter so a file can be mmapped. diffstat: configs/common/FSConfig.py | 8 ++- src/mem/physical.cc| 48 +++-- src/mem/physical.hh| 8 +++--- 3 files changed, 44 insertions(+), 20 deletions(-) diffs (176 lines): diff -r d3c006ecccd3 -r 982b4c6c1470 configs/common/FSConfig.py --- a/configs/common/FSConfig.pyMon Nov 08 13:58:24 2010 -0600 +++ b/configs/common/FSConfig.pyMon Nov 08 13:58:24 2010 -0600 @@ -200,9 +200,12 @@ self.membus.badaddr_responder.warn_access = warn self.bridge = Bridge(delay='50ns', nack_delay='4ns') self.physmem = PhysicalMemory(range = AddrRange(mdesc.mem()), zero = True) +self.diskmem = PhysicalMemory(range = AddrRange(Addr('128MB'), size = '128MB'), + file = disk('ael-arm.ext2')) self.bridge.side_a = self.iobus.port self.bridge.side_b = self.membus.port self.physmem.port = self.membus.port +self.diskmem.port = self.membus.port self.mem_mode = mem_mode @@ -224,7 +227,10 @@ self.intrctrl = IntrControl() self.terminal = Terminal() -self.boot_osflags = 'earlyprintk mem=128MB console=ttyAMA0 lpj=19988480 norandmaps' +self.kernel = binary('vmlinux.arm') +self.boot_osflags = 'earlyprintk mem=128MB console=ttyAMA0 lpj=19988480' + \ +' norandmaps slram=slram0,0x800,+0x800' + \ +' mtdparts=slram0:- rw loglevel=8 root=/dev/mtdblock0' return self diff -r d3c006ecccd3 -r 982b4c6c1470 src/mem/physical.cc --- a/src/mem/physical.cc Mon Nov 08 13:58:24 2010 -0600 +++ b/src/mem/physical.cc Mon Nov 08 13:58:24 2010 -0600 @@ -31,6 +31,7 @@ #include sys/types.h #include sys/mman.h +#include sys/user.h #include errno.h #include fcntl.h #include unistd.h @@ -41,6 +42,7 @@ #include string #include arch/registers.hh +#include base/intmath.hh #include base/misc.hh #include base/random.hh #include base/types.hh @@ -56,26 +58,39 @@ PhysicalMemory::PhysicalMemory(const Params *p) : MemObject(p), pmemAddr(NULL), pagePtr(0), lat(p-latency), lat_var(p-latency_var), - cachedSize(params()-range.size()), cachedStart(params()-range.start) + _size(params()-range.size()), _start(params()-range.start) { -if (params()-range.size() % TheISA::PageBytes != 0) +if (size() % TheISA::PageBytes != 0) panic(Memory Size not divisible by page size\n); if (params()-null) return; -int map_flags = MAP_ANON | MAP_PRIVATE; -pmemAddr = (uint8_t *)mmap(NULL, params()-range.size(), - PROT_READ | PROT_WRITE, map_flags, -1, 0); + +if (params()-file == ) { +int map_flags = MAP_ANON | MAP_PRIVATE; +pmemAddr = (uint8_t *)mmap(NULL, size(), + PROT_READ | PROT_WRITE, map_flags, -1, 0); +} else { +int map_flags = MAP_PRIVATE; +int fd = open(params()-file.c_str(), O_RDONLY); +_size = lseek(fd, 0, SEEK_END); +lseek(fd, 0, SEEK_SET); +pmemAddr = (uint8_t *)mmap(NULL, roundUp(size(), PAGE_SIZE), + PROT_READ | PROT_WRITE, map_flags, fd, 0); +} if (pmemAddr == (void *)MAP_FAILED) { perror(mmap); -fatal(Could not mmap!\n); +if (params()-file == ) +fatal(Could not mmap!\n); +else +fatal(Could not find file: %s\n, params()-file); } //If requested, initialize all the memory to 0 if (p-zero) -memset(pmemAddr, 0, p-range.size()); +memset(pmemAddr, 0, size()); } void @@ -94,8 +109,7 @@ PhysicalMemory::~PhysicalMemory() { if (pmemAddr) -munmap((char*)pmemAddr, params()-range.size()); -//Remove memPorts? +munmap((char*)pmemAddr, size()); } Addr @@ -408,7 +422,7 @@ { snoop = false; resp.clear(); -resp.push_back(RangeSize(start(), params()-range.size())); +resp.push_back(RangeSize(start(), size())); } unsigned @@ -463,6 +477,7 @@ string filename = name() + .physmem; SERIALIZE_SCALAR(filename); +SERIALIZE_SCALAR(_size); // write memory file string thefile = Checkpoint::dir() + / + filename.c_str(); @@ -477,8 +492,7 @@ fatal(Insufficient memory to allocate compression state for %s\n, filename); -if (gzwrite(compressedMem, pmemAddr, params()-range.size()) != -(int)params()-range.size()) { +if (gzwrite(compressedMem, pmemAddr, size()) != (int)size()) { fatal(Write failed on physical memory checkpoint file
[m5-dev] changeset in m5: ARM: Keep the warnings to a minimum.
changeset e1eace3a118a in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=e1eace3a118a description: ARM: Keep the warnings to a minimum. These warnings still need to be addresses, but pages of them is counterproductive. diffstat: src/arch/arm/isa.cc | 14 +++--- src/dev/arm/RealView.py | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diffs (71 lines): diff -r 982b4c6c1470 -r e1eace3a118a src/arch/arm/isa.cc --- a/src/arch/arm/isa.cc Mon Nov 08 13:58:24 2010 -0600 +++ b/src/arch/arm/isa.cc Mon Nov 08 13:58:24 2010 -0600 @@ -180,10 +180,10 @@ } switch (misc_reg) { case MISCREG_CLIDR: -warn(The clidr register always reports 0 caches.\n); +warn_once(The clidr register always reports 0 caches.\n); break; case MISCREG_CCSIDR: -warn(The ccsidr register isn't implemented and +warn_once(The ccsidr register isn't implemented and always reads as 0.\n); break; case MISCREG_ID_PFR0: @@ -268,7 +268,7 @@ } break; case MISCREG_CSSELR: -warn(The csselr register isn't implemented.\n); +warn_once(The csselr register isn't implemented.\n); break; case MISCREG_FPSCR: { @@ -319,7 +319,7 @@ return; case MISCREG_TLBIALLIS: case MISCREG_TLBIALL: -warn(Need to flush all TLBs in MP\n); +warn_once(Need to flush all TLBs in MP\n); tc-getITBPtr()-flushAll(); tc-getDTBPtr()-flushAll(); return; @@ -331,7 +331,7 @@ return; case MISCREG_TLBIMVAIS: case MISCREG_TLBIMVA: -warn(Need to flush all TLBs in MP\n); +warn_once(Need to flush all TLBs in MP\n); tc-getITBPtr()-flushMvaAsid(mbits(newVal, 31, 12), bits(newVal, 7,0)); tc-getDTBPtr()-flushMvaAsid(mbits(newVal, 31, 12), @@ -339,13 +339,13 @@ return; case MISCREG_TLBIASIDIS: case MISCREG_TLBIASID: -warn(Need to flush all TLBs in MP\n); +warn_once(Need to flush all TLBs in MP\n); tc-getITBPtr()-flushAsid(bits(newVal, 7,0)); tc-getDTBPtr()-flushAsid(bits(newVal, 7,0)); return; case MISCREG_TLBIMVAAIS: case MISCREG_TLBIMVAA: -warn(Need to flush all TLBs in MP\n); +warn_once(Need to flush all TLBs in MP\n); tc-getITBPtr()-flushMva(mbits(newVal, 31,12)); tc-getDTBPtr()-flushMva(mbits(newVal, 31,12)); return; diff -r 982b4c6c1470 -r e1eace3a118a src/dev/arm/RealView.py --- a/src/dev/arm/RealView.py Mon Nov 08 13:58:24 2010 -0600 +++ b/src/dev/arm/RealView.py Mon Nov 08 13:58:24 2010 -0600 @@ -100,7 +100,7 @@ timer0 = Sp804(int_num0=36, int_num1=36, pio_addr=0x10011000) timer1 = Sp804(int_num0=37, int_num1=37, pio_addr=0x10012000) -l2x0_fake = IsaFake(pio_addr=0x1f002000, pio_size=0xfff, warn_access=1) +l2x0_fake = IsaFake(pio_addr=0x1f002000, pio_size=0xfff) flash_fake= IsaFake(pio_addr=0x4000, pio_size=0x400) dmac_fake = AmbaFake(pio_addr=0x1003) uart1_fake= AmbaFake(pio_addr=0x1000a000) ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] changeset in m5: ARM: Add support for M5 ops in the ARM ISA
changeset a2c660de7787 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=a2c660de7787 description: ARM: Add support for M5 ops in the ARM ISA diffstat: src/arch/arm/isa/decoder/arm.isa |8 +- src/arch/arm/isa/decoder/thumb.isa |3 +- src/arch/arm/isa/formats/formats.isa |3 + src/arch/arm/isa/formats/m5ops.isa | 78 + src/arch/arm/isa/includes.isa|1 + src/arch/arm/isa/insts/insts.isa |3 + src/arch/arm/isa/insts/m5ops.isa | 275 +++ src/arch/arm/isa/operands.isa|3 + src/arch/arm/types.hh|2 +- util/m5/Makefile.arm | 65 util/m5/Makefile.thumb | 67 util/m5/m5op_arm.S | 143 ++ 12 files changed, 648 insertions(+), 3 deletions(-) diffs (truncated from 756 to 300 lines): diff -r e1eace3a118a -r a2c660de7787 src/arch/arm/isa/decoder/arm.isa --- a/src/arch/arm/isa/decoder/arm.isa Mon Nov 08 13:58:24 2010 -0600 +++ b/src/arch/arm/isa/decoder/arm.isa Mon Nov 08 13:58:24 2010 -0600 @@ -90,7 +90,12 @@ 0x0: ArmParallelAddSubtract::armParallelAddSubtract(); 0x1: ArmPackUnpackSatReverse::armPackUnpackSatReverse(); 0x2: ArmSignedMultiplies::armSignedMultiplies(); -0x3: ArmMiscMedia::armMiscMedia(); +0x3: decode MEDIA_OPCODE { + 0x1F: decode OPC2 { + default: ArmMiscMedia::armMiscMedia(); + } + default: ArmMiscMedia::armMiscMedia(); + } } } 0x4: ArmMacroMem::armMacroMem(); @@ -107,6 +112,7 @@ 0xa, 0xb: VfpData::vfpData(); } // CPNUM 1: decode CPNUM { // 27-24=1110,4 ==1 +0x1: M5ops::m5ops(); 0xa, 0xb: ShortFpTransfer::shortFpTransfer(); 0xf: McrMrc15::mcrMrc15(); } // CPNUM (OP4 == 1) diff -r e1eace3a118a -r a2c660de7787 src/arch/arm/isa/decoder/thumb.isa --- a/src/arch/arm/isa/decoder/thumb.isaMon Nov 08 13:58:24 2010 -0600 +++ b/src/arch/arm/isa/decoder/thumb.isaMon Nov 08 13:58:24 2010 -0600 @@ -84,6 +84,7 @@ default: WarnUnimpl::cdp(); // cdp2 } 0x1: decode LTCOPROC { +0x1: M5ops::m5ops(); 0xa, 0xb: ShortFpTransfer::shortFpTransfer(); 0xf: McrMrc15::mcrMrc15(); } @@ -125,7 +126,6 @@ 0x0: LoadByteMemoryHints::loadByteMemoryHints(); 0x1: LoadHalfwordMemoryHints::loadHalfwordMemoryHints(); 0x2: Thumb32LoadWord::thumb32LoadWord(); -0x3: Unknown::undefined(); } } 0x1: decode HTOPCODE_8_7 { @@ -140,6 +140,7 @@ default: WarnUnimpl::cdp(); // cdp2 } 0x1: decode LTCOPROC { +0x1: M5ops::m5ops(); 0xa, 0xb: ShortFpTransfer::shortFpTransfer(); 0xf: McrMrc15::mcrMrc15(); } diff -r e1eace3a118a -r a2c660de7787 src/arch/arm/isa/formats/formats.isa --- a/src/arch/arm/isa/formats/formats.isa Mon Nov 08 13:58:24 2010 -0600 +++ b/src/arch/arm/isa/formats/formats.isa Mon Nov 08 13:58:24 2010 -0600 @@ -79,3 +79,6 @@ //Unconditional instructions ##include uncond.isa + +//M5 Psuedo-ops +##include m5ops.isa diff -r e1eace3a118a -r a2c660de7787 src/arch/arm/isa/formats/m5ops.isa --- /dev/null Thu Jan 01 00:00:00 1970 + +++ b/src/arch/arm/isa/formats/m5ops.isaMon Nov 08 13:58:24 2010 -0600 @@ -0,0 +1,78 @@ +// +// Copyright (c) 2010 ARM Limited +// All rights reserved +// +// The license below extends only to copyright in the software and shall +// not be construed as granting a license to any other intellectual +// property including but not limited to intellectual property relating +// to a hardware implementation of the functionality of the software +// licensed hereunder. You may use the software subject to the license +// terms below provided that you ensure that this notice is replicated +// unmodified and in its entirety in all distributions of the software, +// modified or unmodified, in source code or in binary form. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer; +// redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution; +// neither the
[m5-dev] changeset in m5: ARM: Add checkpointing support
changeset 08d6a773d1b6 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=08d6a773d1b6 description: ARM: Add checkpointing support diffstat: src/arch/arm/isa.hh | 12 +- src/arch/arm/linux/system.cc | 5 +- src/arch/arm/linux/system.hh | 4 +- src/arch/arm/pagetable.hh| 87 +++ src/arch/arm/table_walker.cc | 16 ++- src/arch/arm/table_walker.hh | 2 +- src/arch/arm/tlb.cc | 14 ++- src/arch/arm/tlb.hh | 2 - src/dev/arm/gic.cc | 44 +- src/dev/arm/pl011.cc | 42 - src/dev/arm/rv_ctrl.cc | 2 - src/dev/arm/timer_sp804.cc | 59 - src/dev/arm/timer_sp804.hh | 4 ++ src/mem/physical.cc | 30 +++ src/mem/physical.hh | 5 ++ src/sim/SConscript | 1 + src/sim/system.cc| 2 +- src/sim/system.hh| 2 +- 18 files changed, 268 insertions(+), 65 deletions(-) diffs (truncated from 587 to 300 lines): diff -r a2c660de7787 -r 08d6a773d1b6 src/arch/arm/isa.hh --- a/src/arch/arm/isa.hh Mon Nov 08 13:58:24 2010 -0600 +++ b/src/arch/arm/isa.hh Mon Nov 08 13:58:25 2010 -0600 @@ -178,10 +178,18 @@ } void serialize(EventManager *em, std::ostream os) -{} +{ +DPRINTF(Checkpoint, Serializing Arm Misc Registers\n); +SERIALIZE_ARRAY(miscRegs, NumMiscRegs); +} void unserialize(EventManager *em, Checkpoint *cp, const std::string section) -{} +{ +DPRINTF(Checkpoint, Unserializing Arm Misc Registers\n); +UNSERIALIZE_ARRAY(miscRegs, NumMiscRegs); +CPSR tmp_cpsr = miscRegs[MISCREG_CPSR]; +updateRegMap(tmp_cpsr); +} ISA() { diff -r a2c660de7787 -r 08d6a773d1b6 src/arch/arm/linux/system.cc --- a/src/arch/arm/linux/system.cc Mon Nov 08 13:58:24 2010 -0600 +++ b/src/arch/arm/linux/system.cc Mon Nov 08 13:58:25 2010 -0600 @@ -99,9 +99,9 @@ } void -LinuxArmSystem::startup() +LinuxArmSystem::initState() { -ArmSystem::startup(); +ArmSystem::initState(); ThreadContext *tc = threadContexts[0]; // Set the initial PC to be at start of the kernel code @@ -117,7 +117,6 @@ { } - LinuxArmSystem * LinuxArmSystemParams::create() { diff -r a2c660de7787 -r 08d6a773d1b6 src/arch/arm/linux/system.hh --- a/src/arch/arm/linux/system.hh Mon Nov 08 13:58:24 2010 -0600 +++ b/src/arch/arm/linux/system.hh Mon Nov 08 13:58:25 2010 -0600 @@ -67,8 +67,8 @@ LinuxArmSystem(Params *p); ~LinuxArmSystem(); -/** Initialize the CPU for booting */ -void startup(); +void initState(); + private: #ifndef NDEBUG /** Event to halt the simulator if the kernel calls panic() */ diff -r a2c660de7787 -r 08d6a773d1b6 src/arch/arm/pagetable.hh --- a/src/arch/arm/pagetable.hh Mon Nov 08 13:58:24 2010 -0600 +++ b/src/arch/arm/pagetable.hh Mon Nov 08 13:58:25 2010 -0600 @@ -48,6 +48,8 @@ #include arch/arm/vtophys.hh #include config/full_system.hh +#include sim/serialize.hh + namespace ArmISA { struct VAddr @@ -71,39 +73,6 @@ }; -struct TlbRange -{ -Addr va; -Addr size; -int contextId; -bool global; - -inline bool -operator(const TlbRange r2) const -{ -if (!(global || r2.global)) { -if (contextId r2.contextId) -return true; -else if (contextId r2.contextId) -return false; -} - -if (va r2.va) -return true; -return false; -} - -inline bool -operator==(const TlbRange r2) const -{ -return va == r2.va - size == r2.size - contextId == r2.contextId - global == r2.global; -} -}; - - // ITB/DTB table entry struct TlbEntry { @@ -143,10 +112,8 @@ // Access permissions bool xn;// Execute Never -uint8_t ap:3; // Access permissions bits -uint8_t domain:4; // Access Domain - -TlbRange range; // For fast TLB searching +uint8_t ap; // Access permissions bits +uint8_t domain; // Access Domain //Construct an entry that maps to physical address addr for SE mode TlbEntry(Addr _asn, Addr _vaddr, Addr _paddr) @@ -196,9 +163,49 @@ return (pfn N) | (va size); } -void serialize(std::ostream os) { panic(Need to Implement\n); } -void unserialize(Checkpoint *cp, const std::string section) - { panic(Need to Implement\n);} +void +serialize(std::ostream os) +{ +SERIALIZE_SCALAR(pfn); +SERIALIZE_SCALAR(size); +SERIALIZE_SCALAR(vpn); +SERIALIZE_SCALAR(asid); +SERIALIZE_SCALAR(N); +SERIALIZE_SCALAR(global); +SERIALIZE_SCALAR(valid);
[m5-dev] changeset in m5: ARM: Add some TLB statistics for ARM
changeset 85a8198aa2ff in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=85a8198aa2ff description: ARM: Add some TLB statistics for ARM diffstat: src/arch/arm/tlb.cc | 117 ++- src/arch/arm/tlb.hh | 28 --- 2 files changed, 125 insertions(+), 20 deletions(-) diffs (284 lines): diff -r 08d6a773d1b6 -r 85a8198aa2ff src/arch/arm/tlb.cc --- a/src/arch/arm/tlb.cc Mon Nov 08 13:58:25 2010 -0600 +++ b/src/arch/arm/tlb.cc Mon Nov 08 13:58:25 2010 -0600 @@ -152,6 +152,8 @@ for(int i = size-1; i 0; i--) table[i] = table[i-1]; table[0] = entry; + +inserts++; } void @@ -178,13 +180,17 @@ TlbEntry *te; while (x size) { te = table[x]; - if (te-valid) + if (te-valid) { DPRINTF(TLB, - %#x, asn %d ppn %#x size: %#x ap:%d\n, te-vpn te-N, te-asid, te-pfn te-N, te-size, te-ap); + flushedEntries++; + } x++; } memset(table, 0, sizeof(TlbEntry[size])); + +flushTlb++; } @@ -199,8 +205,10 @@ DPRINTF(TLB, - %#x, asn %d ppn %#x size: %#x ap:%d\n, te-vpn te-N, te-asid, te-pfn te-N, te-size, te-ap); te-valid = false; +flushedEntries++; te = lookup(mva,asn); } +flushTlbMvaAsid++; } void @@ -217,9 +225,11 @@ te-valid = false; DPRINTF(TLB, - %#x, asn %d ppn %#x size: %#x ap:%d\n, te-vpn te-N, te-asid, te-pfn te-N, te-size, te-ap); +flushedEntries++; } x++; } +flushTlbAsid++; } void @@ -237,9 +247,11 @@ te-valid = false; DPRINTF(TLB, - %#x, asn %d ppn %#x size: %#x ap:%d\n, te-vpn te-N, te-asid, te-pfn te-N, te-size, te-ap); +flushedEntries++; } x++; } +flushTlbMva++; } void @@ -268,34 +280,47 @@ void TLB::regStats() { -read_hits +instHits +.name(name() + .inst_hits) +.desc(ITB inst hits) +; + +instMisses +.name(name() + .inst_misses) +.desc(ITB inst misses) +; + +instAccesses +.name(name() + .inst_accesses) +.desc(ITB inst accesses) +; + +readHits .name(name() + .read_hits) .desc(DTB read hits) ; -read_misses +readMisses .name(name() + .read_misses) .desc(DTB read misses) ; - -read_accesses +readAccesses .name(name() + .read_accesses) .desc(DTB read accesses) ; -write_hits +writeHits .name(name() + .write_hits) .desc(DTB write hits) ; -write_misses +writeMisses .name(name() + .write_misses) .desc(DTB write misses) ; - -write_accesses +writeAccesses .name(name() + .write_accesses) .desc(DTB write accesses) ; @@ -315,9 +340,57 @@ .desc(DTB accesses) ; -hits = read_hits + write_hits; -misses = read_misses + write_misses; -accesses = read_accesses + write_accesses; +flushTlb +.name(name() + .flush_tlb) +.desc(Number of times complete TLB was flushed) +; + +flushTlbMva +.name(name() + .flush_tlb_mva) +.desc(Number of times TLB was flushed by MVA) +; + +flushTlbMvaAsid +.name(name() + .flush_tlb_mva_asid) +.desc(Number of times TLB was flushed by MVA ASID) +; + +flushTlbAsid +.name(name() + .flush_tlb_asid) +.desc(Number of times TLB was flushed by ASID) +; + +flushedEntries +.name(name() + .flush_entries) +.desc(Number of entries that have been flushed from TLB) +; + +alignFaults +.name(name() + .align_faults) +.desc(Number of TLB faults due to alignment restrictions) +; + +prefetchFaults +.name(name() + .prefetch_faults) +.desc(Number of TLB faults due to prefetch) +; + +domainFaults +.name(name() + .domain_faults) +.desc(Number of TLB faults due to domain restrictions) +; + +permsFaults +.name(name() + .perms_faults) +.desc(Number of TLB faults due to permissions restrictions) +; + +instAccesses = instHits + instMisses; +readAccesses = readHits + readMisses; +writeAccesses = writeHits + writeMisses; +hits = readHits + writeHits + instHits; +misses = readMisses + writeMisses + instMisses; +accesses = readAccesses + writeAccesses + instAccesses; } #if !FULL_SYSTEM @@ -400,6 +473,7 @@ assert(flags MustBeOne); if (sctlr.a || !(flags AllowUnaligned)) { if (vaddr flags AlignmentMask) { +alignFaults++; return new DataAbort(vaddr, 0, is_write, ArmFault::AlignmentFault); } } @@
[m5-dev] changeset in m5: ARM: Add full-system regressions
changeset a1a85250e897 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=a1a85250e897 description: ARM: Add full-system regressions diffstat: tests/SConscript | 21 +- tests/configs/realview-simple-atomic.py | 96 + tests/configs/realview-simple-timing.py | 98 + tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini |2 +- tests/long/00.gzip/ref/arm/linux/simple-atomic/simout |8 +- tests/long/00.gzip/ref/arm/linux/simple-atomic/stats.txt | 32 +- tests/long/10.mcf/ref/arm/linux/simple-atomic/config.ini |4 +- tests/long/10.mcf/ref/arm/linux/simple-atomic/simout |8 +- tests/long/10.mcf/ref/arm/linux/simple-atomic/stats.txt | 32 +- tests/long/10.mcf/ref/arm/linux/simple-timing/config.ini |6 +- tests/long/10.mcf/ref/arm/linux/simple-timing/simout | 10 +- tests/long/10.mcf/ref/arm/linux/simple-timing/stats.txt | 32 +- tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/config.ini | 578 ++ tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/simerr | 39 + tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/simout | 16 + tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/stats.txt | 399 ++ tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/status |1 + tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/system.terminal |0 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/config.ini | 575 + tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/simerr | 39 + tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/simout | 16 + tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/stats.txt | 483 tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/status |1 + tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/system.terminal |0 util/regress |2 +- 25 files changed, 2464 insertions(+), 34 deletions(-) diffs (truncated from 2739 to 300 lines): diff -r 85a8198aa2ff -r a1a85250e897 tests/SConscript --- a/tests/SConscript Mon Nov 08 13:58:25 2010 -0600 +++ b/tests/SConscript Mon Nov 08 13:58:25 2010 -0600 @@ -30,7 +30,7 @@ # Kevin Lim import os, signal -import sys +import sys, time import glob from SCons.Script.SConscript import SConsEnvironment @@ -102,11 +102,26 @@ if env['BATCH']: cmd = '%s -t %d %s' % (env['BATCH_CMD'], timeout, cmd) +pre_exec_time = time.time() status = env.Execute(env.subst(cmd, target=target, source=source)) if status == 0: # M5 terminated normally. # Run diff on output ref directories to find differences. # Exclude the stats file since we will use diff-out on that. + +# NFS file systems can be annoying and not have updated yet +# wait until we see the file modified +statsdiff = os.path.join(tgt_dir, 'statsdiff') +m_time = 0 +nap = 0 +while m_time pre_exec_time and nap 10: +try: +m_time = os.stat(statsdiff).st_mtime +except OSError: +pass +time.sleep(1) +nap += 1 + outdiff = os.path.join(tgt_dir, 'outdiff') diffcmd = 'diff -ubrs %s ${SOURCES[2].dir} %s %s' \ % (output_ignore_args, tgt_dir, outdiff) @@ -114,7 +129,6 @@ print = Output differences = print contents(outdiff) # Run diff-out on stats.txt file -statsdiff = os.path.join(tgt_dir, 'statsdiff') diffcmd = '$DIFFOUT ${SOURCES[2]} %s %s' \ % (os.path.join(tgt_dir, 'stats.txt'), statsdiff) diffcmd = env.subst(diffcmd, target=target, source=source) @@ -260,6 +274,9 @@ if env['TARGET_ISA'] == 'sparc': configs += ['t1000-simple-atomic', 't1000-simple-timing'] +if env['TARGET_ISA'] == 'arm': +configs += ['realview-simple-atomic', +'realview-simple-timing'] else: configs += ['simple-atomic', 'simple-timing', 'o3-timing', 'memtest', diff -r 85a8198aa2ff -r a1a85250e897 tests/configs/realview-simple-atomic.py --- /dev/null Thu Jan 01 00:00:00 1970 + +++ b/tests/configs/realview-simple-atomic.py Mon Nov 08 13:58:25 2010 -0600 @@ -0,0 +1,96 @@ +# Copyright (c) 2006-2007 The Regents of The University of Michigan +# All rights reserved. +# +# Redistribution and use in source
[m5-dev] changeset in m5: ARM: Update SE stats for TLB stats additions
changeset f61e079ad05e in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=f61e079ad05e description: ARM: Update SE stats for TLB stats additions diffstat: tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini| 2 +- tests/long/00.gzip/ref/arm/linux/simple-atomic/simout| 10 +- tests/long/00.gzip/ref/arm/linux/simple-atomic/stats.txt | 8 +- tests/long/00.gzip/ref/arm/linux/simple-timing/config.ini| 2 +- tests/long/00.gzip/ref/arm/linux/simple-timing/simout| 8 +- tests/long/00.gzip/ref/arm/linux/simple-timing/stats.txt | 32 ++- tests/long/10.mcf/ref/arm/linux/simple-atomic/config.ini | 2 +- tests/long/10.mcf/ref/arm/linux/simple-atomic/simout | 10 +- tests/long/10.mcf/ref/arm/linux/simple-atomic/stats.txt | 8 +- tests/long/10.mcf/ref/arm/linux/simple-timing/config.ini | 2 +- tests/long/10.mcf/ref/arm/linux/simple-timing/simout | 10 +- tests/long/10.mcf/ref/arm/linux/simple-timing/stats.txt | 8 +- tests/long/20.parser/ref/arm/linux/simple-atomic/config.ini | 6 +- tests/long/20.parser/ref/arm/linux/simple-atomic/simout | 10 +- tests/long/20.parser/ref/arm/linux/simple-atomic/stats.txt | 32 ++- tests/long/20.parser/ref/arm/linux/simple-timing/config.ini | 4 +- tests/long/20.parser/ref/arm/linux/simple-timing/simout | 8 +- tests/long/20.parser/ref/arm/linux/simple-timing/stats.txt | 32 ++- tests/long/30.eon/ref/arm/linux/simple-atomic/config.ini | 4 +- tests/long/30.eon/ref/arm/linux/simple-atomic/simout | 10 +- tests/long/30.eon/ref/arm/linux/simple-atomic/stats.txt | 32 ++- tests/long/30.eon/ref/arm/linux/simple-timing/config.ini | 2 +- tests/long/30.eon/ref/arm/linux/simple-timing/simout | 8 +- tests/long/30.eon/ref/arm/linux/simple-timing/stats.txt | 32 ++- tests/long/40.perlbmk/ref/arm/linux/simple-atomic/config.ini | 4 +- tests/long/40.perlbmk/ref/arm/linux/simple-atomic/simout | 10 +- tests/long/40.perlbmk/ref/arm/linux/simple-atomic/stats.txt | 32 ++- tests/long/40.perlbmk/ref/arm/linux/simple-timing/config.ini | 2 +- tests/long/40.perlbmk/ref/arm/linux/simple-timing/simout | 8 +- tests/long/40.perlbmk/ref/arm/linux/simple-timing/stats.txt | 32 ++- tests/long/50.vortex/ref/arm/linux/simple-atomic/config.ini | 4 +- tests/long/50.vortex/ref/arm/linux/simple-atomic/simout | 10 +- tests/long/50.vortex/ref/arm/linux/simple-atomic/stats.txt | 32 ++- tests/long/50.vortex/ref/arm/linux/simple-timing/config.ini | 2 +- tests/long/50.vortex/ref/arm/linux/simple-timing/simout | 8 +- tests/long/50.vortex/ref/arm/linux/simple-timing/stats.txt | 32 ++- tests/long/60.bzip2/ref/arm/linux/simple-atomic/config.ini | 4 +- tests/long/60.bzip2/ref/arm/linux/simple-atomic/simout | 10 +- tests/long/60.bzip2/ref/arm/linux/simple-atomic/stats.txt| 32 ++- tests/long/60.bzip2/ref/arm/linux/simple-timing/config.ini | 2 +- tests/long/60.bzip2/ref/arm/linux/simple-timing/simout | 8 +- tests/long/60.bzip2/ref/arm/linux/simple-timing/stats.txt| 32 ++- tests/long/70.twolf/ref/arm/linux/simple-atomic/config.ini | 4 +- tests/long/70.twolf/ref/arm/linux/simple-atomic/simout | 14 ++-- tests/long/70.twolf/ref/arm/linux/simple-atomic/stats.txt| 32 ++- tests/long/70.twolf/ref/arm/linux/simple-timing/config.ini | 2 +- tests/long/70.twolf/ref/arm/linux/simple-timing/simout | 10 ++- tests/long/70.twolf/ref/arm/linux/simple-timing/stats.txt| 32 ++- tests/quick/00.hello/ref/arm/linux/simple-atomic/config.ini | 2 +- tests/quick/00.hello/ref/arm/linux/simple-atomic/simout | 10 +- tests/quick/00.hello/ref/arm/linux/simple-atomic/stats.txt | 32 ++- 51 files changed, 511 insertions(+), 173 deletions(-) diffs (truncated from 1442 to 300 lines): diff -r a1a85250e897 -r f61e079ad05e tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini --- a/tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini Mon Nov 08 13:58:25 2010 -0600 +++ b/tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini Mon Nov 08 13:59:35 2010 -0600 @@ -52,7 +52,7 @@ [system.cpu.workload] type=LiveProcess cmd=gzip input.log 1 -cwd=build/ARM_SE/tests/fast/long/00.gzip/arm/linux/simple-atomic +cwd=build/ARM_SE/tests/opt/long/00.gzip/arm/linux/simple-atomic egid=100 env= errout=cerr diff -r a1a85250e897 -r f61e079ad05e tests/long/00.gzip/ref/arm/linux/simple-atomic/simout --- a/tests/long/00.gzip/ref/arm/linux/simple-atomic/simout Mon Nov 08 13:58:25 2010 -0600 +++ b/tests/long/00.gzip/ref/arm/linux/simple-atomic/simout Mon Nov 08 13:59:35 2010 -0600 @@ -5,11 +5,11 @@ All Rights Reserved -M5 compiled Oct 5 2010 14:46:04 -M5 revision 878ec5a6f4d1+ 7707+ default qtip tip ext/fs_regressions.patch -M5
[m5-dev] changeset in m5: X86: Fix X86_FS compilation.
changeset f4362ffd810f in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=f4362ffd810f description: X86: Fix X86_FS compilation. diffstat: src/arch/x86/linux/system.cc | 2 ++ src/arch/x86/stacktrace.cc | 1 + 2 files changed, 3 insertions(+), 0 deletions(-) diffs (30 lines): diff -r f61e079ad05e -r f4362ffd810f src/arch/x86/linux/system.cc --- a/src/arch/x86/linux/system.cc Mon Nov 08 13:59:35 2010 -0600 +++ b/src/arch/x86/linux/system.cc Mon Nov 08 12:43:38 2010 -0800 @@ -37,6 +37,7 @@ * Authors: Gabe Black */ +#include arch/x86/isa_traits.hh #include arch/x86/linux/system.hh #include arch/x86/regs/int.hh #include arch/vtophys.hh @@ -44,6 +45,7 @@ #include cpu/thread_context.hh #include mem/physical.hh #include params/LinuxX86System.hh +#include sim/byteswap.hh using namespace LittleEndianGuest; diff -r f61e079ad05e -r f4362ffd810f src/arch/x86/stacktrace.cc --- a/src/arch/x86/stacktrace.ccMon Nov 08 13:59:35 2010 -0600 +++ b/src/arch/x86/stacktrace.ccMon Nov 08 12:43:38 2010 -0800 @@ -37,6 +37,7 @@ #include base/trace.hh #include cpu/base.hh #include cpu/thread_context.hh +#include mem/vport.hh #include sim/system.hh using namespace std; ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] changeset in m5: X86: Fix X86_FS compilation.
It's apparent an X86_FS regression is still really needed to keep that code working like it should. Please make sure it builds before pushing code, but I'm sure a regression would be harder to miss. This will be my second highest generic M5 priority, possibly getting taken care of this week or this coming weekend. Could somebody give me a quick rundown on how the linux boot regressions are structured? I assume specifying an external init script needs to work. How does that hook in? Would I need to hack the kernel for that, or replace the init on the image to load the user script, or what? I think there may be one or two people out there that have done some of this on their own already (I'm thinking of Joel specifically) and their insight would also be helpful. Gabe On 11/08/10 12:43, Gabe Black wrote: changeset f4362ffd810f in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=f4362ffd810f description: X86: Fix X86_FS compilation. diffstat: src/arch/x86/linux/system.cc | 2 ++ src/arch/x86/stacktrace.cc | 1 + 2 files changed, 3 insertions(+), 0 deletions(-) diffs (30 lines): diff -r f61e079ad05e -r f4362ffd810f src/arch/x86/linux/system.cc --- a/src/arch/x86/linux/system.ccMon Nov 08 13:59:35 2010 -0600 +++ b/src/arch/x86/linux/system.ccMon Nov 08 12:43:38 2010 -0800 @@ -37,6 +37,7 @@ * Authors: Gabe Black */ +#include arch/x86/isa_traits.hh #include arch/x86/linux/system.hh #include arch/x86/regs/int.hh #include arch/vtophys.hh @@ -44,6 +45,7 @@ #include cpu/thread_context.hh #include mem/physical.hh #include params/LinuxX86System.hh +#include sim/byteswap.hh using namespace LittleEndianGuest; diff -r f61e079ad05e -r f4362ffd810f src/arch/x86/stacktrace.cc --- a/src/arch/x86/stacktrace.cc Mon Nov 08 13:59:35 2010 -0600 +++ b/src/arch/x86/stacktrace.cc Mon Nov 08 12:43:38 2010 -0800 @@ -37,6 +37,7 @@ #include base/trace.hh #include cpu/base.hh #include cpu/thread_context.hh +#include mem/vport.hh #include sim/system.hh using namespace std; ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] changeset in m5: X86: Fix X86_FS compila tion.
Sorry Gabe, To make a regression work you first need m5ops to work and the you can call m5 readfile, see if the file is non-zero and if it is execute it. The file is normally just a m5 exit call. I added a changeset that adds regressions for ARM_FS to reviewboard toady. You can checkout the change and look at the alpha image for what is required. Ali On Mon, 08 Nov 2010 12:49:25 -0800, Gabe Black gbl...@eecs.umich.edu wrote: It's apparent an X86_FS regression is still really needed to keep that code working like it should. Please make sure it builds before pushing code, but I'm sure a regression would be harder to miss. This will be my second highest generic M5 priority, possibly getting taken care of this week or this coming weekend. Could somebody give me a quick rundown on how the linux boot regressions are structured? I assume specifying an external init script needs to work. How does that hook in? Would I need to hack the kernel for that, or replace the init on the image to load the user script, or what? I think there may be one or two people out there that have done some of this on their own already (I'm thinking of Joel specifically) and their insight would also be helpful. Gabe On 11/08/10 12:43, Gabe Black wrote: changeset f4362ffd810f in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=f4362ffd810f description: X86: Fix X86_FS compilation. diffstat: src/arch/x86/linux/system.cc | 2 ++ src/arch/x86/stacktrace.cc | 1 + 2 files changed, 3 insertions(+), 0 deletions(-) diffs (30 lines): diff -r f61e079ad05e -r f4362ffd810f src/arch/x86/linux/system.cc --- a/src/arch/x86/linux/system.cc Mon Nov 08 13:59:35 2010 -0600 +++ b/src/arch/x86/linux/system.cc Mon Nov 08 12:43:38 2010 -0800 @@ -37,6 +37,7 @@ * Authors: Gabe Black */ +#include arch/x86/isa_traits.hh #include arch/x86/linux/system.hh #include arch/x86/regs/int.hh #include arch/vtophys.hh @@ -44,6 +45,7 @@ #include cpu/thread_context.hh #include mem/physical.hh #include params/LinuxX86System.hh +#include sim/byteswap.hh using namespace LittleEndianGuest; diff -r f61e079ad05e -r f4362ffd810f src/arch/x86/stacktrace.cc --- a/src/arch/x86/stacktrace.ccMon Nov 08 13:59:35 2010 -0600 +++ b/src/arch/x86/stacktrace.ccMon Nov 08 12:43:38 2010 -0800 @@ -37,6 +37,7 @@ #include base/trace.hh #include cpu/base.hh #include cpu/thread_context.hh +#include mem/vport.hh #include sim/system.hh using namespace std; ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: ARM: Cache the misc regs at the TLB to limit readMiscReg() calls.
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/291/ --- Review request for Default. Summary --- ARM: Cache the misc regs at the TLB to limit readMiscReg() calls. Diffs - src/arch/arm/isa.cc f61e079ad05e src/arch/arm/tlb.hh f61e079ad05e src/arch/arm/tlb.cc f61e079ad05e src/arch/arm/utility.cc f61e079ad05e Diff: http://reviews.m5sim.org/r/291/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: ARM: Add support for a dumb IDE controller
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/292/ --- Review request for Default. Summary --- ARM: Add support for a dumb IDE controller Diffs - configs/common/FSConfig.py f61e079ad05e src/dev/Ide.py f61e079ad05e src/dev/arm/realview.cc f61e079ad05e src/dev/ide_ctrl.hh f61e079ad05e src/dev/ide_ctrl.cc f61e079ad05e src/dev/pcidev.cc f61e079ad05e Diff: http://reviews.m5sim.org/r/292/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: O3: prevent a squash when completeAcc() modifies misc reg through TC.
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/296/ --- Review request for Default. Summary --- O3: prevent a squash when completeAcc() modifies misc reg through TC. This happens on ARM instructions when they update the IT state bits. Code and associated comment was copied from execute() and initiateAcc() methods Diffs - src/cpu/o3/dyn_inst_impl.hh f61e079ad05e Diff: http://reviews.m5sim.org/r/296/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: imported patch ext/simd_opclasses.patch
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/297/ --- Review request for Default. Summary --- ARM/CPU: Add op classes for SIMD type instructions and use them in ARM ISA description. Diffs - src/arch/arm/isa/insts/div.isa f61e079ad05e src/arch/arm/isa/insts/fp.isa f61e079ad05e src/arch/arm/isa/insts/mult.isa f61e079ad05e src/arch/arm/isa/insts/neon.isa f61e079ad05e src/cpu/FuncUnit.py f61e079ad05e src/cpu/o3/FUPool.py f61e079ad05e src/cpu/o3/FuncUnitConfig.py f61e079ad05e src/cpu/op_class.hh f61e079ad05e Diff: http://reviews.m5sim.org/r/297/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: ARM: Add a Keyboard Mouse Interface controller
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/295/ --- Review request for Default. Summary --- ARM: Add a Keyboard Mouse Interface controller Diffs - src/dev/arm/RealView.py f61e079ad05e src/dev/arm/SConscript f61e079ad05e src/dev/arm/kmi.hh PRE-CREATION src/dev/arm/kmi.cc PRE-CREATION Diff: http://reviews.m5sim.org/r/295/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: ARM: Implement a CLCD Frame buffer
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/294/ --- Review request for Default. Summary --- ARM: Implement a CLCD Frame buffer Diffs - src/dev/arm/RealView.py f61e079ad05e src/dev/arm/SConscript f61e079ad05e src/dev/arm/amba_device.hh f61e079ad05e src/dev/arm/amba_device.cc f61e079ad05e src/dev/arm/pl111.hh PRE-CREATION src/dev/arm/pl111.cc PRE-CREATION Diff: http://reviews.m5sim.org/r/294/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: O3: Make all instructions that write a misc register not perform the write until commit.
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/298/ --- Review request for Default. Summary --- O3: Make all instructions that write a misc register not perform the write until commit. ARM Instructions updating cumulative flags (ARM FP exceptions and saturation flags) are not serialized. Added aliases for ARM FP exceptions and saturation flags in FPSCR. Diffs - src/arch/arm/isa.cc f61e079ad05e src/arch/arm/isa/insts/fp.isa f61e079ad05e src/arch/arm/isa/insts/neon.isa f61e079ad05e src/arch/arm/isa/operands.isa f61e079ad05e src/arch/arm/miscregs.hh f61e079ad05e src/cpu/o3/commit_impl.hh f61e079ad05e src/cpu/o3/dyn_inst.hh f61e079ad05e src/cpu/o3/dyn_inst_impl.hh f61e079ad05e Diff: http://reviews.m5sim.org/r/298/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: imported patch ext/pretty_scons_output.patch
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/299/ --- Review request for Default. Summary --- Scons: Try to make SCons output prettier. This change has scons print [ C], [CC], [LN], etc in front of normal commands instead of the entire command themselves and cleans up the build a good bit. Unfortunately, I couldn't figure out a way to get the same behavior from env.Command() calls so they're still verbose. Thoughts? Like it? Hate it? Diffs - SConstruct f61e079ad05e Diff: http://reviews.m5sim.org/r/299/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: Scons: Try to make SCons output prettier.
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/299/ --- (Updated 2010-11-08 15:49:05.987230) Review request for Default. Summary (updated) --- Scons: Try to make SCons output prettier. This change has scons print [ C], [CC], [LN], etc in front of normal commands instead of the entire command themselves and cleans up the build a good bit. Unfortunately, I couldn't figure out a way to get the same behavior from env.Command() calls so they're still verbose. Thoughts? Like it? Hate it? Diffs - SConstruct f61e079ad05e Diff: http://reviews.m5sim.org/r/299/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: ARM: Add support for moving predicated false dest operands from sources.
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/300/ --- Review request for Default. Summary --- ARM: Add support for moving predicated false dest operands from sources. Diffs - src/arch/arm/isa/insts/misc.isa f61e079ad05e src/arch/isa_parser.py f61e079ad05e src/cpu/o3/dyn_inst.hh f61e079ad05e src/cpu/o3/iew_impl.hh f61e079ad05e src/cpu/o3/lsq_unit_impl.hh f61e079ad05e Diff: http://reviews.m5sim.org/r/300/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: Scons: Try to make SCons output prettier.
I've done this before, just a sec... (some googling) I think you have to use an Action object instead of a raw command in the Command builder. When building the Action object, the second parameter is the alternative text to output. It might look like the following: env.Command(target, source, Action(foo $TARGET $SOURCES, FOOING $SOURCES)) The []s are probably not necessary, but that's just my opinion. It might be better to support a -v or --verbose option on the scons command line if we can. An environment variable is a little obscure, and it's likely you'll just want verbose output temporarily, not as a long term environment setting. I don't really remember whether adding command line options to the scons command line is feasible and/or advisable, so I'll defer to other people's opinions, but it seems a little more natural to me. Gabe Quoting Ali Saidi sa...@umich.edu: --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/299/ --- (Updated 2010-11-08 15:49:05.987230) Review request for Default. Summary (updated) --- Scons: Try to make SCons output prettier. This change has scons print [ C], [CC], [LN], etc in front of normal commands instead of the entire command themselves and cleans up the build a good bit. Unfortunately, I couldn't figure out a way to get the same behavior from env.Command() calls so they're still verbose. Thoughts? Like it? Hate it? Diffs - SConstruct f61e079ad05e Diff: http://reviews.m5sim.org/r/299/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: Scons: Try to make SCons output prettier.
Oh wait, that's not an environment variable, that's a scons variable from the command line. My opinion still stands since it'd be sticky and it's not as nice as a -- option, but it's better than an environment variable. Gabe Quoting Gabriel Michael Black gbl...@eecs.umich.edu: I've done this before, just a sec... (some googling) I think you have to use an Action object instead of a raw command in the Command builder. When building the Action object, the second parameter is the alternative text to output. It might look like the following: env.Command(target, source, Action(foo $TARGET $SOURCES, FOOING $SOURCES)) The []s are probably not necessary, but that's just my opinion. It might be better to support a -v or --verbose option on the scons command line if we can. An environment variable is a little obscure, and it's likely you'll just want verbose output temporarily, not as a long term environment setting. I don't really remember whether adding command line options to the scons command line is feasible and/or advisable, so I'll defer to other people's opinions, but it seems a little more natural to me. Gabe Quoting Ali Saidi sa...@umich.edu: --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/299/ --- (Updated 2010-11-08 15:49:05.987230) Review request for Default. Summary (updated) --- Scons: Try to make SCons output prettier. This change has scons print [ C], [CC], [LN], etc in front of normal commands instead of the entire command themselves and cleans up the build a good bit. Unfortunately, I couldn't figure out a way to get the same behavior from env.Command() calls so they're still verbose. Thoughts? Like it? Hate it? Diffs - SConstruct f61e079ad05e Diff: http://reviews.m5sim.org/r/299/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: ARM: Add support for a dumb IDE controller
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/292/#review436 --- src/dev/ide_ctrl.cc http://reviews.m5sim.org/r/292/#comment646 Is this something that we should deal with on a per device basis, or is this a more generic thing? Also, is this something that should be configured by the user, or is this something that's either fixed or gleaned from the OS? - Nathan On 2010-11-08 15:34:45, Ali Saidi wrote: --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/292/ --- (Updated 2010-11-08 15:34:45) Review request for Default. Summary --- ARM: Add support for a dumb IDE controller Diffs - configs/common/FSConfig.py f61e079ad05e src/dev/Ide.py f61e079ad05e src/dev/arm/realview.cc f61e079ad05e src/dev/ide_ctrl.hh f61e079ad05e src/dev/ide_ctrl.cc f61e079ad05e src/dev/pcidev.cc f61e079ad05e Diff: http://reviews.m5sim.org/r/292/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: imported patch ext/arm_gdb.patch
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/293/#review437 --- Was the remote_gdb.cc file copied with hg cp Be nice if it were. - Nathan On 2010-11-08 15:35:16, Ali Saidi wrote: --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/293/ --- (Updated 2010-11-08 15:35:16) Review request for Default. Summary --- imported patch ext/arm_gdb.patch Diffs - src/arch/arm/SConscript f61e079ad05e src/arch/arm/remote_gdb.hh f61e079ad05e src/arch/arm/remote_gdb.cc PRE-CREATION src/arch/arm/utility.hh f61e079ad05e src/arch/arm/utility.cc f61e079ad05e Diff: http://reviews.m5sim.org/r/293/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: Scons: Try to make SCons output prettier.
I think you have to use an Action object instead of a raw command in the Command builder. When building the Action object, the second parameter is the alternative text to output. It might look like the following: env.Command(target, source, Action(foo $TARGET $SOURCES, FOOING $SOURCES)) The []s are probably not necessary, but that's just my opinion. If it's not too much work, it would be really nice to do this. It might be better to support a -v or --verbose option on the scons command line if we can. An environment variable is a little obscure, and it's likely you'll just want verbose output temporarily, not as a long term environment setting. I don't really remember whether adding command line options to the scons command line is feasible and/or advisable, so I'll defer to other people's opinions, but it seems a little more natural to me. You can add a command line variable. I think that a verbose variable would be nice though -v is already taken (we can repurpose it). Nate ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: Scons: Try to make SCons output prettier.
Thoughts? Like it? Hate it? Love it. What I'd really like would be to have the shorthand go to stdout and have the verbose stuff go to some sort of scons.log in case I want the command line. That is probably too much work. We could also go the other way and add a -q/--quiet (though quiet already means something quieter than we have). Nate ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: ARM: Add support for a dumb IDE controller
On 2010-11-08 17:56:14, Nathan Binkert wrote: src/dev/ide_ctrl.cc, line 454 http://reviews.m5sim.org/r/292/diff/1/?file=5058#file5058line454 Is this something that we should deal with on a per device basis, or is this a more generic thing? Also, is this something that should be configured by the user, or is this something that's either fixed or gleaned from the OS? It seems rather arbitrary, but the world of function pointers that sets this value in the OS is pretty deep. I think having the user configure it is fine, there isn't a really good way we could grab it from the OS since there isn't once place where there is a device struct that describes a ide controller. These values only seem to apply to the IDE device. - Ali --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/292/#review436 --- On 2010-11-08 15:34:45, Ali Saidi wrote: --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/292/ --- (Updated 2010-11-08 15:34:45) Review request for Default. Summary --- ARM: Add support for a dumb IDE controller Diffs - configs/common/FSConfig.py f61e079ad05e src/dev/Ide.py f61e079ad05e src/dev/arm/realview.cc f61e079ad05e src/dev/ide_ctrl.hh f61e079ad05e src/dev/ide_ctrl.cc f61e079ad05e src/dev/pcidev.cc f61e079ad05e Diff: http://reviews.m5sim.org/r/292/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: imported patch ext/arm_gdb.patch
On 2010-11-08 18:00:50, Nathan Binkert wrote: Was the remote_gdb.cc file copied with hg cp Be nice if it were. I'll make sure the committed code does that. Any other issues? - Ali --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/293/#review437 --- On 2010-11-08 15:35:16, Ali Saidi wrote: --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/293/ --- (Updated 2010-11-08 15:35:16) Review request for Default. Summary --- imported patch ext/arm_gdb.patch Diffs - src/arch/arm/SConscript f61e079ad05e src/arch/arm/remote_gdb.hh f61e079ad05e src/arch/arm/remote_gdb.cc PRE-CREATION src/arch/arm/utility.hh f61e079ad05e src/arch/arm/utility.cc f61e079ad05e Diff: http://reviews.m5sim.org/r/293/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: Scons: Try to make SCons output prettier.
It's not sticky since it's not added to the sticky_vars below. Although it seems like our options are a bit adhoc and there is an arguments() class in scons that does some of this for us. RE your action command below, yes I saw that you can do it with an Action() however, according to the mailing list it's broken in SCons 2.0 or late 1.X so I'm not too excited about doing it. If we really wanted to we could detect the version and not do it in those cases, but that might be too much work. Ali On Nov 8, 2010, at 6:41 PM, Gabriel Michael Black wrote: Oh wait, that's not an environment variable, that's a scons variable from the command line. My opinion still stands since it'd be sticky and it's not as nice as a -- option, but it's better than an environment variable. Gabe Quoting Gabriel Michael Black gbl...@eecs.umich.edu: I've done this before, just a sec... (some googling) I think you have to use an Action object instead of a raw command in the Command builder. When building the Action object, the second parameter is the alternative text to output. It might look like the following: env.Command(target, source, Action(foo $TARGET $SOURCES, FOOING $SOURCES)) The []s are probably not necessary, but that's just my opinion. It might be better to support a -v or --verbose option on the scons command line if we can. An environment variable is a little obscure, and it's likely you'll just want verbose output temporarily, not as a long term environment setting. I don't really remember whether adding command line options to the scons command line is feasible and/or advisable, so I'll defer to other people's opinions, but it seems a little more natural to me. Gabe Quoting Ali Saidi sa...@umich.edu: --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/299/ --- (Updated 2010-11-08 15:49:05.987230) Review request for Default. Summary (updated) --- Scons: Try to make SCons output prettier. This change has scons print [ C], [CC], [LN], etc in front of normal commands instead of the entire command themselves and cleans up the build a good bit. Unfortunately, I couldn't figure out a way to get the same behavior from env.Command() calls so they're still verbose. Thoughts? Like it? Hate it? Diffs - SConstruct f61e079ad05e Diff: http://reviews.m5sim.org/r/299/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: Scons: Try to make SCons output prettier.
Check out scons -Q Ali On Nov 8, 2010, at 8:11 PM, Nathan Binkert wrote: Thoughts? Like it? Hate it? Love it. What I'd really like would be to have the shorthand go to stdout and have the verbose stuff go to some sort of scons.log in case I want the command line. That is probably too much work. We could also go the other way and add a -q/--quiet (though quiet already means something quieter than we have). Nate ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: Scons: Try to make SCons output prettier.
Hmm. ok.. it seems like the issue only exists for builders. Which means we can do it although I don't know a way to make the non COMSTR ones produce output when VERBOSE=True. Thoughts? Ali pretty_scons.patch Description: Binary data On Nov 8, 2010, at 10:29 PM, Ali Saidi wrote: It's not sticky since it's not added to the sticky_vars below. Although it seems like our options are a bit adhoc and there is an arguments() class in scons that does some of this for us. RE your action command below, yes I saw that you can do it with an Action() however, according to the mailing list it's broken in SCons 2.0 or late 1.X so I'm not too excited about doing it. If we really wanted to we could detect the version and not do it in those cases, but that might be too much work. Ali On Nov 8, 2010, at 6:41 PM, Gabriel Michael Black wrote: Oh wait, that's not an environment variable, that's a scons variable from the command line. My opinion still stands since it'd be sticky and it's not as nice as a -- option, but it's better than an environment variable. Gabe Quoting Gabriel Michael Black gbl...@eecs.umich.edu: I've done this before, just a sec... (some googling) I think you have to use an Action object instead of a raw command in the Command builder. When building the Action object, the second parameter is the alternative text to output. It might look like the following: env.Command(target, source, Action(foo $TARGET $SOURCES, FOOING $SOURCES)) The []s are probably not necessary, but that's just my opinion. It might be better to support a -v or --verbose option on the scons command line if we can. An environment variable is a little obscure, and it's likely you'll just want verbose output temporarily, not as a long term environment setting. I don't really remember whether adding command line options to the scons command line is feasible and/or advisable, so I'll defer to other people's opinions, but it seems a little more natural to me. Gabe Quoting Ali Saidi sa...@umich.edu: --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/299/ --- (Updated 2010-11-08 15:49:05.987230) Review request for Default. Summary (updated) --- Scons: Try to make SCons output prettier. This change has scons print [ C], [CC], [LN], etc in front of normal commands instead of the entire command themselves and cleans up the build a good bit. Unfortunately, I couldn't figure out a way to get the same behavior from env.Command() calls so they're still verbose. Thoughts? Like it? Hate it? Diffs - SConstruct f61e079ad05e Diff: http://reviews.m5sim.org/r/299/diff Testing --- Thanks, Ali ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Review Request: SimObject: Use self when calling the clear_child method.
--- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/301/ --- Review request for Default. Summary --- SimObject: Use self when calling the clear_child method. Diffs - src/python/m5/SimObject.py f4362ffd810f Diff: http://reviews.m5sim.org/r/301/diff Testing --- Thanks, Gabe ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] Review Request: SimObject: Use self when calling the clear_child method.
This code was apparently never called before, and I think I landed on it by accident. Could there be anything else like that? Maybe we should put together a test configuration? Gabe On 11/08/10 23:37, Gabe Black wrote: --- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/301/ --- Review request for Default. Summary --- SimObject: Use self when calling the clear_child method. Diffs - src/python/m5/SimObject.py f4362ffd810f Diff: http://reviews.m5sim.org/r/301/diff Testing --- Thanks, Gabe ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev