diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-01-27 01:59:20 -0500 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-01-27 01:59:20 -0500 |
commit | 0358ccee23072eef0b6448e3170457037682a452 (patch) | |
tree | 378b5ba325d74536092a7f245423d81274db38b4 | |
parent | e41f54f97f9ebdea32cc6498c346636cddc9e06d (diff) | |
parent | 5c7bf74c073d0aea808046d10dfcaa6c319217a3 (diff) | |
download | gem5-0358ccee23072eef0b6448e3170457037682a452.tar.xz |
Merge zizzer:/bk/newmem
into zower.eecs.umich.edu:/eecshome/m5/newmem
src/arch/sparc/isa/formats/mem/util.isa:
src/arch/sparc/isa_traits.hh:
src/arch/sparc/system.cc:
Hand Merge
--HG--
extra : convert_revision : d5e0c97caebb616493e2f642e915969d7028109c
98 files changed, 2311 insertions, 844 deletions
diff --git a/SConstruct b/SConstruct index 7e8c6c2f0..f99bc1f20 100644 --- a/SConstruct +++ b/SConstruct @@ -66,6 +66,7 @@ # Python library imports import sys import os +import subprocess from os.path import join as joinpath # Check for recent-enough Python and SCons versions. If your system's @@ -206,11 +207,36 @@ if False: # M5_PLY is used by isa_parser.py to find the PLY package. env.Append(ENV = { 'M5_PLY' : Dir('ext/ply') }) +env['GCC'] = False +env['SUNCC'] = False +env['GCC'] = subprocess.Popen(env['CXX'] + ' --version', shell=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, + close_fds=True).communicate()[0].find('GCC') >= 0 +env['SUNCC'] = subprocess.Popen(env['CXX'] + ' -V', shell=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, + close_fds=True).communicate()[0].find('Sun C++') >= 0 +if (env['GCC'] and env['SUNCC']): + print 'Error: How can we have both g++ and Sun C++ at the same time?' + Exit(1) + # Set up default C++ compiler flags -env.Append(CCFLAGS='-pipe') -env.Append(CCFLAGS='-fno-strict-aliasing') -env.Append(CCFLAGS=Split('-Wall -Wno-sign-compare -Werror -Wundef')) +if env['GCC']: + env.Append(CCFLAGS='-pipe') + env.Append(CCFLAGS='-fno-strict-aliasing') + env.Append(CCFLAGS=Split('-Wall -Wno-sign-compare -Werror -Wundef')) +elif env['SUNCC']: + env.Append(CCFLAGS='-Qoption ccfe') + env.Append(CCFLAGS='-features=gcc') + env.Append(CCFLAGS='-features=extensions') + env.Append(CCFLAGS='-library=stlport4') + env.Append(CCFLAGS='-xar') +# env.Append(CCFLAGS='-instances=semiexplicit') +else: + print 'Error: Don\'t know what compiler options to use for your compiler.' + print ' Please fix SConstruct and try again.' + Exit(1) + if sys.platform == 'cygwin': # cygwin has some header file issues... env.Append(CCFLAGS=Split("-Wno-uninitialized")) @@ -293,7 +319,7 @@ if not conf.CheckLibWithHeader(None, 'sys/socket.h', 'C++', 'accept(0,0,0);'): # Check for zlib. If the check passes, libz will be automatically # added to the LIBS environment variable. -if not conf.CheckLibWithHeader('z', 'zlib.h', 'C++'): +if not conf.CheckLibWithHeader('z', 'zlib.h', 'C++','zlibVersion();'): print 'Error: did not find needed zlib compression library '\ 'and/or zlib.h header file.' print ' Please install zlib and try again.' diff --git a/src/SConscript b/src/SConscript index a998dd561..6c179f861 100644 --- a/src/SConscript +++ b/src/SConscript @@ -311,30 +311,41 @@ def makeEnv(label, objsfx, strip = False, **kwargs): envList.append(newEnv) # Debug binary -# Solaris seems to have some issue with DWARF2 debugging information, it's ok -# with stabs though -if sys.platform == 'sunos5': - debug_flag = '-gstabs+' +ccflags = {} +if env['GCC']: + if sys.platform == 'sunos5': + ccflags['debug'] = '-gstabs+' + else: + ccflags['debug'] = '-ggdb3' + ccflags['opt'] = '-g -O3' + ccflags['fast'] = '-O3' + ccflags['prof'] = '-O3 -g -pg' +elif env['SUNCC']: + ccflags['debug'] = '-g0' + ccflags['opt'] = '-g -O' + ccflags['fast'] = '-fast' + ccflags['prof'] = '-fast -g -pg' else: - debug_flag = '-ggdb3' + print 'Unknown compiler, please fix compiler options' + Exit(1) makeEnv('debug', '.do', - CCFLAGS = Split('%s -O0' % debug_flag), + CCFLAGS = Split(ccflags['debug']), CPPDEFINES = ['DEBUG', 'TRACING_ON=1']) # Optimized binary makeEnv('opt', '.o', - CCFLAGS = Split('-g -O3'), + CCFLAGS = Split(ccflags['opt']), CPPDEFINES = ['TRACING_ON=1']) # "Fast" binary makeEnv('fast', '.fo', strip = True, - CCFLAGS = Split('-O3'), + CCFLAGS = Split(ccflags['fast']), CPPDEFINES = ['NDEBUG', 'TRACING_ON=0']) # Profiled binary makeEnv('prof', '.po', - CCFLAGS = Split('-O3 -g -pg'), + CCFLAGS = Split(ccflags['prof']), CPPDEFINES = ['NDEBUG', 'TRACING_ON=0'], LINKFLAGS = '-pg') diff --git a/src/arch/alpha/ev5.cc b/src/arch/alpha/ev5.cc index 3d71fbda5..8d13511ac 100644 --- a/src/arch/alpha/ev5.cc +++ b/src/arch/alpha/ev5.cc @@ -94,8 +94,6 @@ AlphaISA::processInterrupts(CPU *cpu) int ipl = 0; int summary = 0; - cpu->checkInterrupts = false; - if (cpu->readMiscReg(IPR_ASTRR)) panic("asynchronous traps not implemented\n"); @@ -155,8 +153,6 @@ SimpleThread::hwrei() if (!misspeculating()) { if (kernelStats) kernelStats->hwrei(); - - cpu->checkInterrupts = true; } // FIXME: XXX check for interrupts? XXX diff --git a/src/arch/sparc/floatregfile.cc b/src/arch/sparc/floatregfile.cc index 7f3d5a758..1bb78c67b 100644 --- a/src/arch/sparc/floatregfile.cc +++ b/src/arch/sparc/floatregfile.cc @@ -72,16 +72,19 @@ FloatReg FloatRegFile::readReg(int floatReg, int width) float32_t result32; memcpy(&result32, regSpace + 4 * floatReg, sizeof(result32)); result = htog(result32); + DPRINTF(Sparc, "Read FP32 register %d = 0x%x\n", floatReg, result); break; case DoubleWidth: float64_t result64; memcpy(&result64, regSpace + 4 * floatReg, sizeof(result64)); result = htog(result64); + DPRINTF(Sparc, "Read FP64 register %d = 0x%x\n", floatReg, result); break; case QuadWidth: float128_t result128; memcpy(&result128, regSpace + 4 * floatReg, sizeof(result128)); result = htog(result128); + DPRINTF(Sparc, "Read FP128 register %d = 0x%x\n", floatReg, result); break; default: panic("Attempted to read a %d bit floating point register!", width); @@ -101,16 +104,19 @@ FloatRegBits FloatRegFile::readRegBits(int floatReg, int width) uint32_t result32; memcpy(&result32, regSpace + 4 * floatReg, sizeof(result32)); result = htog(result32); + DPRINTF(Sparc, "Read FP32 bits register %d = 0x%x\n", floatReg, result); break; case DoubleWidth: uint64_t result64; memcpy(&result64, regSpace + 4 * floatReg, sizeof(result64)); result = htog(result64); + DPRINTF(Sparc, "Read FP64 bits register %d = 0x%x\n", floatReg, result); break; case QuadWidth: uint64_t result128; memcpy(&result128, regSpace + 4 * floatReg, sizeof(result128)); result = htog(result128); + DPRINTF(Sparc, "Read FP128 bits register %d = 0x%x\n", floatReg, result); break; default: panic("Attempted to read a %d bit floating point register!", width); diff --git a/src/arch/sparc/isa/base.isa b/src/arch/sparc/isa/base.isa index b78511398..58a17f23e 100644 --- a/src/arch/sparc/isa/base.isa +++ b/src/arch/sparc/isa/base.isa @@ -416,3 +416,27 @@ output decoder {{ } }}; +output exec {{ + /// Check "FP enabled" machine status bit. Called when executing any FP + /// instruction in full-system mode. + /// @retval Full-system mode: NoFault if FP is enabled, FpDisabled + /// if not. Non-full-system mode: always returns NoFault. +#if FULL_SYSTEM + inline Fault checkFpEnableFault(%(CPU_exec_context)s *xc) + { + Fault fault = NoFault; // dummy... this ipr access should not fault + if (xc->readMiscRegWithEffect(MISCREG_PSTATE) & PSTATE::pef && + xc->readMiscRegWithEffect(MISCREG_FPRS) & 0x4) + return NoFault; + else + return new FpDisabled; + } +#else + inline Fault checkFpEnableFault(%(CPU_exec_context)s *xc) + { + return NoFault; + } +#endif +}}; + + diff --git a/src/arch/sparc/isa/decoder.isa b/src/arch/sparc/isa/decoder.isa index 138485a17..cc6eded1d 100644 --- a/src/arch/sparc/isa/decoder.isa +++ b/src/arch/sparc/isa/decoder.isa @@ -192,7 +192,7 @@ decode OP default Unknown::unknown() Y = Rd<63:32>; }}); 0x0B: smul({{ - Rd.sdw = Rs1.sdw<31:0> * Rs2_or_imm13<31:0>; + Rd.sdw = sext<32>(Rs1.sdw<31:0>) * sext<32>(Rs2_or_imm13<31:0>); Y = Rd.sdw<63:32>; }}); 0x0C: subc({{Rd.sdw = Rs1.sdw + (~Rs2_or_imm13) + 1 - Ccr<0:0>}}); @@ -215,10 +215,10 @@ decode OP default Unknown::unknown() else { Rd.udw = ((int64_t)((Y << 32) | Rs1.sdw<31:0>)) / Rs2_or_imm13.sdw; - if(Rd.udw<63:31> != 0) + if((int64_t)Rd.udw >= std::numeric_limits<int32_t>::max()) Rd.udw = 0x7FFFFFFF; - else if(Rd.udw<63:> && Rd.udw<62:31> != 0xFFFFFFFF) - Rd.udw = 0xFFFFFFFF80000000ULL; + else if((int64_t)Rd.udw <= std::numeric_limits<int32_t>::min()) + Rd.udw = ULL(0xFFFFFFFF80000000); } }}); } @@ -252,8 +252,7 @@ decode OP default Unknown::unknown() Rd = resTemp = Rs1 + val2 + carryin;}}, {{(Rs1<31:0> + val2<31:0> + carryin)<32:>}}, {{Rs1<31:> == val2<31:> && val2<31:> != resTemp<31:>}}, - {{(Rs1<63:1> + val2<63:1> + - ((Rs1 & val2) | (carryin & (Rs1 | val2)))<0:>)<63:>}}, + {{((Rs1 & val2) | (~resTemp & (Rs1 | val2)))<63:>}}, {{Rs1<63:> == val2<63:> && val2<63:> != resTemp<63:>}} ); 0x1A: IntOpCcRes::umulcc({{ @@ -262,15 +261,15 @@ decode OP default Unknown::unknown() Y = resTemp<63:32>;}}); 0x1B: IntOpCcRes::smulcc({{ int64_t resTemp; - Rd = resTemp = Rs1.sdw<31:0> * Rs2_or_imm13.sdw<31:0>; + Rd = resTemp = sext<32>(Rs1.sdw<31:0>) * sext<32>(Rs2_or_imm13<31:0>); Y = resTemp<63:32>;}}); 0x1C: subccc({{ int64_t resTemp, val2 = Rs2_or_imm13; int64_t carryin = Ccr<0:0>; Rd = resTemp = Rs1 + ~val2 + 1 - carryin;}}, - {{(~((Rs1<31:0> + (~(val2 + carryin))<31:0> + 1))<32:>)}}, + {{((~Rs1 & val2) | (resTemp & (~Rs1 | val2)))<31:>}}, {{Rs1<31:> != val2<31:> && Rs1<31:> != resTemp<31:>}}, - {{(~((Rs1<63:1> + (~(val2 + carryin))<63:1>) + (Rs1<0:> + (~(val2+carryin))<0:> + 1)<63:1>))<63:>}}, + {{((~Rs1 & val2) | (resTemp & (~Rs1 | val2)))<63:>}}, {{Rs1<63:> != val2<63:> && Rs1<63:> != resTemp<63:>}} ); 0x1D: IntOpCcRes::udivxcc({{ @@ -299,10 +298,10 @@ decode OP default Unknown::unknown() else { Rd = (int64_t)((Y << 32) | Rs1.sdw<31:0>) / val2; - overflow = (Rd<63:31> != 0); - underflow = (Rd<63:> && Rd<62:31> != 0xFFFFFFFF); + overflow = ((int64_t)Rd >= std::numeric_limits<int32_t>::max()); + underflow = ((int64_t)Rd <= std::numeric_limits<int32_t>::min()); if(overflow) Rd = 0x7FFFFFFF; - else if(underflow) Rd = 0xFFFFFFFF80000000ULL; + else if(underflow) Rd = ULL(0xFFFFFFFF80000000); } }}, {{0}}, {{overflow || underflow}}, @@ -379,7 +378,7 @@ decode OP default Unknown::unknown() 0x1: srax({{Rd = Rs1.sdw >> (I ? SHCNT64 : Rs2<5:0>);}}); } 0x28: decode RS1 { - 0x00: NoPriv::rdy({{Rd = Y;}}); + 0x00: NoPriv::rdy({{Rd = Y<31:0>;}}); //1 should cause an illegal instruction exception 0x02: NoPriv::rdccr({{Rd = Ccr;}}); 0x03: NoPriv::rdasi({{Rd = Asi;}}); @@ -529,7 +528,7 @@ decode OP default Unknown::unknown() 0x7: movrge({{Rd = (Rs1.sdw >= 0) ? Rs2_or_imm10 : Rd;}}); } 0x30: decode RD { - 0x00: NoPriv::wry({{Y = Rs1 ^ Rs2_or_imm13;}}); + 0x00: NoPriv::wry({{Y = (Rs1 ^ Rs2_or_imm13)<31:0>;}}); //0x01 should cause an illegal instruction exception 0x02: NoPriv::wrccr({{Ccr = Rs1 ^ Rs2_or_imm13;}}); 0x03: NoPriv::wrasi({{Asi = Rs1 ^ Rs2_or_imm13;}}); @@ -667,7 +666,7 @@ decode OP default Unknown::unknown() Fsr &= ~(7 << 14); Fsr &= ~(0x1F); }}); - 0x03: Trap::fmovq({{fault = new FpDisabled;}}); + 0x03: Trap::fmovq({{fault = new FpExceptionOther;}}); 0x05: fnegs({{ Frds.uw = Frs2s.uw ^ (1UL << 31); //fsr.ftt = fsr.cexc = 0 @@ -694,8 +693,8 @@ decode OP default Unknown::unknown() Fsr &= ~(0x1F); }}); 0x0B: Trap::fabsq({{fault = new FpDisabled;}}); - 0x29: fsqrts({{Frds.sf = sqrt(Frs2s.sf);}}); - 0x2A: fsqrtd({{Frd.df = sqrt(Frs2.df);}}); + 0x29: fsqrts({{Frds.sf = std::sqrt(Frs2s.sf);}}); + 0x2A: fsqrtd({{Frd.df = std::sqrt(Frs2.df);}}); 0x2B: Trap::fsqrtq({{fault = new FpDisabled;}}); 0x41: fadds({{Frds.sf = Frs1s.sf + Frs2s.sf;}}); 0x42: faddd({{Frd.df = Frs1.df + Frs2.df;}}); @@ -863,11 +862,11 @@ decode OP default Unknown::unknown() 0x72: Trap::fxnor({{fault = new IllegalInstruction;}}); 0x73: Trap::fxnors({{fault = new IllegalInstruction;}}); 0x74: BasicOperate::fsrc1({{Frd.udw = Frs1.udw;}}); - 0x75: BasicOperate::fsrc1s({{Frd.uw = Frs1.uw;}}); + 0x75: BasicOperate::fsrc1s({{Frds.uw = Frs1s.uw;}}); 0x76: Trap::fornot2({{fault = new IllegalInstruction;}}); 0x77: Trap::fornot2s({{fault = new IllegalInstruction;}}); 0x78: BasicOperate::fsrc2({{Frd.udw = Frs2.udw;}}); - 0x79: BasicOperate::fsrc2s({{Frd.uw = Frs2.uw;}}); + 0x79: BasicOperate::fsrc2s({{Frds.uw = Frs2s.uw;}}); 0x7A: Trap::fornot1({{fault = new IllegalInstruction;}}); 0x7B: Trap::fornot1s({{fault = new IllegalInstruction;}}); 0x7C: Trap::for({{fault = new IllegalInstruction;}}); @@ -885,7 +884,7 @@ decode OP default Unknown::unknown() else { if (Pstate<3:>) - (Rd = xc->readPC())<31:0>; + Rd = (xc->readPC())<31:0>; else Rd = xc->readPC(); NNPC = target; @@ -1037,13 +1036,14 @@ decode OP default Unknown::unknown() 0x0B: ldx({{Rd = (int64_t)Mem.sdw;}}); } 0x0D: LoadStore::ldstub( - {{Rd = Mem.ub;}}, - {{Mem.ub = 0xFF;}}); + {{uReg0 = Mem.ub;}}, + {{Rd.ub = uReg0; + Mem.ub = 0xFF;}}); 0x0E: Store::stx({{Mem.udw = Rd}}); 0x0F: LoadStore::swap( - {{uReg0 = Rd.uw; - Rd.uw = Mem.uw;}}, - {{Mem.uw = uReg0;}}); + {{ uReg0 = Mem.uw}}, + {{ Mem.uw = Rd.uw; + Rd.uw = uReg0;}}); format LoadAlt { 0x10: lduwa({{Rd = Mem.uw;}}, {{EXT_ASI}}); 0x11: lduba({{Rd = Mem.ub;}}, {{EXT_ASI}}); @@ -1051,34 +1051,34 @@ decode OP default Unknown::unknown() 0x13: decode EXT_ASI { //ASI_LDTD_AIUP 0x22: TwinLoad::ldtx_aiup( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); //ASI_LDTD_AIUS 0x23: TwinLoad::ldtx_aius( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); //ASI_QUAD_LDD 0x24: TwinLoad::ldtx_quad_ldd( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); //ASI_LDTX_REAL 0x26: TwinLoad::ldtx_real( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); //ASI_LDTX_N 0x27: TwinLoad::ldtx_n( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); //ASI_LDTX_L 0x2C: TwinLoad::ldtx_l( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); //ASI_LDTX_REAL_L 0x2E: TwinLoad::ldtx_real_l( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); //ASI_LDTX_N_L 0x2F: TwinLoad::ldtx_n_l( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); //ASI_LDTX_P 0xE2: TwinLoad::ldtx_p( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); //ASI_LDTX_S 0xE3: TwinLoad::ldtx_s( - {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); + {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); default: ldtwa({{ uint64_t val = Mem.udw; RdLow = val<31:0>; @@ -1099,22 +1099,23 @@ decode OP default Unknown::unknown() 0x1B: ldxa({{Rd = (int64_t)Mem.sdw;}}, {{EXT_ASI}}); } 0x1D: LoadStoreAlt::ldstuba( - {{Rd = Mem.ub;}}, - {{Mem.ub = 0xFF}}, {{EXT_ASI}}); + {{uReg0 = Mem.ub;}}, + {{Rd.ub = uReg0; + Mem.ub = 0xFF;}}, {{EXT_ASI}}); 0x1E: StoreAlt::stxa({{Mem.udw = Rd}}, {{EXT_ASI}}); 0x1F: LoadStoreAlt::swapa( - {{uReg0 = Rd.uw; - Rd.uw = Mem.uw;}}, - {{Mem.uw = uReg0;}}, {{EXT_ASI}}); + {{ uReg0 = Mem.uw}}, + {{ Mem.uw = Rd.uw; + Rd.uw = uReg0;}}, {{EXT_ASI}}); format Trap { - 0x20: Load::ldf({{Frd.uw = Mem.uw;}}); + 0x20: Load::ldf({{Frds.uw = Mem.uw;}}); 0x21: decode X { 0x0: Load::ldfsr({{Fsr = Mem.uw | Fsr<63:32>;}}); 0x1: Load::ldxfsr({{Fsr = Mem.udw;}}); } 0x22: ldqf({{fault = new FpDisabled;}}); 0x23: Load::lddf({{Frd.udw = Mem.udw;}}); - 0x24: Store::stf({{Mem.uw = Frd.uw;}}); + 0x24: Store::stf({{Mem.uw = Frds.uw;}}); 0x25: decode X { 0x0: Store::stfsr({{Mem.uw = Fsr<31:0>;}}); 0x1: Store::stxfsr({{Mem.udw = Fsr;}}); @@ -1122,7 +1123,7 @@ decode OP default Unknown::unknown() 0x26: stqf({{fault = new FpDisabled;}}); 0x27: Store::stdf({{Mem.udw = Frd.udw;}}); 0x2D: Nop::prefetch({{ }}); - 0x30: LoadAlt::ldfa({{Frd.uw = Mem.uw;}}, {{EXT_ASI}}); + 0x30: LoadAlt::ldfa({{Frds.uw = Mem.uw;}}, {{EXT_ASI}}); 0x32: ldqfa({{fault = new FpDisabled;}}); format LoadAlt { 0x33: decode EXT_ASI { @@ -1205,7 +1206,7 @@ decode OP default Unknown::unknown() {{fault = new DataAccessException;}}); } } - 0x34: Store::stfa({{Mem.uw = Frd.uw;}}); + 0x34: Store::stfa({{Mem.uw = Frds.uw;}}); 0x36: stqfa({{fault = new FpDisabled;}}); format StoreAlt { 0x37: decode EXT_ASI { diff --git a/src/arch/sparc/isa/formats/basic.isa b/src/arch/sparc/isa/formats/basic.isa index 56e933763..e8762a205 100644 --- a/src/arch/sparc/isa/formats/basic.isa +++ b/src/arch/sparc/isa/formats/basic.isa @@ -1,4 +1,4 @@ -// Copyright (c) 2006 The Regents of The University of Michigan +// Copyright (c) 2006-2007 The Regents of The University of Michigan // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ def template BasicExecPanic {{ Fault execute(%(CPU_exec_context)s *, Trace::InstRecord *) const { panic("Execute method called when it shouldn't!"); + M5_DUMMY_RETURN } }}; @@ -71,6 +72,7 @@ def template BasicExecute {{ { Fault fault = NoFault; + %(fp_enable_check)s; %(op_decl)s; %(op_rd)s; %(code)s; diff --git a/src/arch/sparc/isa/formats/integerop.isa b/src/arch/sparc/isa/formats/integerop.isa index 363aca1a1..f877b8790 100644 --- a/src/arch/sparc/isa/formats/integerop.isa +++ b/src/arch/sparc/isa/formats/integerop.isa @@ -1,4 +1,4 @@ -// Copyright (c) 2006 The Regents of The University of Michigan +// Copyright (c) 2006-2007 The Regents of The University of Michigan // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -154,7 +154,7 @@ output decoder {{ bool IntOp::printPseudoOps(std::ostream &os, Addr pc, const SymbolTable *symbab) const { - if(!strcmp(mnemonic, "or") && _srcRegIdx[0] == 0) + if(!std::strcmp(mnemonic, "or") && _srcRegIdx[0] == 0) { printMnemonic(os, "mov"); printSrcReg(os, 1); @@ -168,7 +168,7 @@ output decoder {{ bool IntOpImm::printPseudoOps(std::ostream &os, Addr pc, const SymbolTable *symbab) const { - if(!strcmp(mnemonic, "or")) + if(!std::strcmp(mnemonic, "or")) { if(_numSrcRegs > 0 && _srcRegIdx[0] == 0) { diff --git a/src/arch/sparc/isa/formats/mem/blockmem.isa b/src/arch/sparc/isa/formats/mem/blockmem.isa index 352e963b3..9795d2342 100644 --- a/src/arch/sparc/isa/formats/mem/blockmem.isa +++ b/src/arch/sparc/isa/formats/mem/blockmem.isa @@ -476,7 +476,6 @@ let {{ faultCode = '' return (header_output, decoder_output, exec_output, decode_block) - def doTwinLoadFormat(code, faultCode, name, Name, asi, opt_flags): addrCalcReg = 'EA = Rs1 + Rs2 + offset;' addrCalcImm = 'EA = Rs1 + imm + offset;' @@ -492,10 +491,11 @@ let {{ pcedCode = '' if (microPc == 1): flag_code = "flags[IsLastMicroOp] = true;" - pcedCode = matcher.sub("RdHigh", code) + pcedCode = "RdLow = uReg0;\n" + pcedCode += matcher.sub("RdHigh", code) else: flag_code = "flags[IsDelayedCommit] = true; flags[IsFirstMicroOp] = true;" - pcedCode = matcher.sub("RdLow", code) + pcedCode = matcher.sub("uReg0", code) iop = InstObjParams(name, Name, 'TwinMem', {"code": pcedCode, "ea_code": addrCalcReg, "fault_check": faultCode, "micro_pc": microPc, diff --git a/src/arch/sparc/isa/formats/mem/util.isa b/src/arch/sparc/isa/formats/mem/util.isa index 5bb4e1fe6..dbaabdca4 100644 --- a/src/arch/sparc/isa/formats/mem/util.isa +++ b/src/arch/sparc/isa/formats/mem/util.isa @@ -141,6 +141,7 @@ def template LoadExecute {{ { Fault fault = NoFault; Addr EA; + %(fp_enable_check)s; %(op_decl)s; %(op_rd)s; %(ea_code)s; @@ -170,6 +171,7 @@ def template LoadInitiateAcc {{ { Fault fault = NoFault; Addr EA; + %(fp_enable_check)s; %(op_decl)s; %(op_rd)s; %(ea_code)s; @@ -210,6 +212,7 @@ def template StoreExecute {{ //It should be optomized out in all the others bool storeCond = true; Addr EA; + %(fp_enable_check)s; %(op_decl)s; %(op_rd)s; %(ea_code)s; @@ -241,6 +244,7 @@ def template StoreInitiateAcc {{ Fault fault = NoFault; bool storeCond = true; Addr EA; + %(fp_enable_check)s; %(op_decl)s; %(op_rd)s; %(ea_code)s; diff --git a/src/arch/sparc/isa/includes.isa b/src/arch/sparc/isa/includes.isa index 2e7b16f20..474af3ad9 100644 --- a/src/arch/sparc/isa/includes.isa +++ b/src/arch/sparc/isa/includes.isa @@ -1,4 +1,4 @@ -// Copyright (c) 2006 The Regents of The University of Michigan +// Copyright (c) 2006-2007 The Regents of The University of Michigan // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -34,6 +34,7 @@ // output header {{ +#include <cstring> #include <sstream> #include <iostream> @@ -64,7 +65,9 @@ output exec {{ #if defined(linux) #include <fenv.h> #endif +#include <limits> +#include <cmath> #include "arch/sparc/asi.hh" #include "cpu/base.hh" #include "cpu/exetrace.hh" diff --git a/src/arch/sparc/isa_traits.hh b/src/arch/sparc/isa_traits.hh index 8a26334a7..64ae6abd8 100644 --- a/src/arch/sparc/isa_traits.hh +++ b/src/arch/sparc/isa_traits.hh @@ -59,7 +59,7 @@ namespace SparcISA // These enumerate all the registers for dependence tracking. enum DependenceTags { FP_Base_DepTag = 32*3+8, - Ctrl_Base_DepTag = FP_Base_DepTag + 64, + Ctrl_Base_DepTag = FP_Base_DepTag + 64 }; // semantically meaningful register indices diff --git a/src/arch/sparc/tlb.cc b/src/arch/sparc/tlb.cc index 86e1cefbe..bc3c39294 100644 --- a/src/arch/sparc/tlb.cc +++ b/src/arch/sparc/tlb.cc @@ -28,6 +28,8 @@ * Authors: Ali Saidi */ +#include <cstring> + #include "arch/sparc/asi.hh" #include "arch/sparc/miscregfile.hh" #include "arch/sparc/tlb.hh" @@ -53,7 +55,7 @@ TLB::TLB(const std::string &name, int s) fatal("SPARC T1 TLB registers don't support more than 64 TLB entries."); tlb = new TlbEntry[size]; - memset(tlb, 0, sizeof(TlbEntry) * size); + std::memset(tlb, 0, sizeof(TlbEntry) * size); for (int x = 0; x < size; x++) freeList.push_back(&tlb[x]); @@ -170,8 +172,8 @@ insertAllLocked: freeList.remove(new_entry); if (new_entry->valid && new_entry->used) usedEntries--; - - lookupTable.erase(new_entry->range); + if (new_entry->valid) + lookupTable.erase(new_entry->range); assert(PTE.valid()); @@ -577,6 +579,9 @@ DTB::translate(RequestPtr &req, ThreadContext *tc, bool write) DPRINTF(TLB, "TLB: DTB Request to translate va=%#x size=%d asi=%#x\n", vaddr, size, asi); + if (lookupTable.size() != 64 - freeList.size()) + panic("Lookup table size: %d tlb size: %d\n", lookupTable.size(), + freeList.size()); if (asi == ASI_IMPLICIT) implicit = true; diff --git a/src/arch/sparc/tlb_map.hh b/src/arch/sparc/tlb_map.hh index 688daf5b9..8285db939 100644 --- a/src/arch/sparc/tlb_map.hh +++ b/src/arch/sparc/tlb_map.hh @@ -135,6 +135,19 @@ class TlbMap { return tree.empty(); } + + void print() + { + iterator i; + i = tree.begin(); + while (i != tree.end()) { + std::cout << std::hex << i->first.va << " " << i->first.size << " " << + i->first.contextId << " " << i->first.partitionId << " " << + i->first.real << " " << i->second << std::endl; + i++; + } + } + }; }; diff --git a/src/arch/sparc/ua2005.cc b/src/arch/sparc/ua2005.cc index 00a44275c..ecb63bb9a 100644 --- a/src/arch/sparc/ua2005.cc +++ b/src/arch/sparc/ua2005.cc @@ -48,7 +48,6 @@ MiscRegFile::setFSRegWithEffect(int miscReg, const MiscReg &val, case MISCREG_SOFTINT_CLR: return setRegWithEffect(MISCREG_SOFTINT, ~val & softint, tc); case MISCREG_SOFTINT_SET: - tc->getCpuPtr()->checkInterrupts = true; tc->getCpuPtr()->post_interrupt(soft_interrupt); return setRegWithEffect(MISCREG_SOFTINT, val | softint, tc); @@ -78,15 +77,9 @@ MiscRegFile::setFSRegWithEffect(int miscReg, const MiscReg &val, break; case MISCREG_PSTATE: - if (val & PSTATE::ie && !(pstate & PSTATE::ie)) { - tc->getCpuPtr()->checkInterrupts = true; - } setReg(miscReg, val); case MISCREG_PIL: - if (val < pil) { - tc->getCpuPtr()->checkInterrupts = true; - } setReg(miscReg, val); break; @@ -110,7 +103,7 @@ MiscRegFile::setFSRegWithEffect(int miscReg, const MiscReg &val, case MISCREG_QUEUE_NRES_ERROR_HEAD: case MISCREG_QUEUE_NRES_ERROR_TAIL: setReg(miscReg, val); - tc->getCpuPtr()->checkInterrupts = true; + //do something to post mondo interrupt break; case MISCREG_HSTICK_CMPR: @@ -206,7 +199,6 @@ MiscRegFile::processSTickCompare(ThreadContext *tc) (stick_cmpr & mask(63))); if (!(tc->readMiscReg(MISCREG_STICK_CMPR) & (ULL(1) << 63))) { tc->getCpuPtr()->post_interrupt(soft_interrupt); - tc->getCpuPtr()->checkInterrupts = true; setRegWithEffect(MISCREG_SOFTINT, softint | (ULL(1) << 16), tc); } } else @@ -230,7 +222,6 @@ MiscRegFile::processHSTickCompare(ThreadContext *tc) if (!(tc->readMiscReg(MISCREG_HSTICK_CMPR) & (ULL(1) << 63))) { setRegWithEffect(MISCREG_HINTP, 1, tc); tc->getCpuPtr()->post_interrupt(hstick_match); - tc->getCpuPtr()->checkInterrupts = true; } // Need to do something to cause interrupt to happen here !!! @todo } else diff --git a/src/arch/sparc/utility.hh b/src/arch/sparc/utility.hh index 5c7fe343d..3c8bdcd01 100644 --- a/src/arch/sparc/utility.hh +++ b/src/arch/sparc/utility.hh @@ -50,7 +50,7 @@ namespace SparcISA inline ExtMachInst makeExtMI(MachInst inst, ThreadContext * xc) { - ExtMachInst emi = (unsigned MachInst) inst; + ExtMachInst emi = (MachInst) inst; //The I bit, bit 13, is used to figure out where the ASI //should come from. Use that in the ExtMachInst. This is //slightly redundant, but it removes the need to put a condition diff --git a/src/base/compiler.hh b/src/base/compiler.hh new file mode 100644 index 000000000..5f2e9d7af --- /dev/null +++ b/src/base/compiler.hh @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2006 The Regents of The University of Michigan + * All rights reserved. + * + * 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 name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Authors: Ali Saidi + */ + +#ifndef __BASE_COMPILER_HH__ +#define __BASE_COMPILER_HH__ + +//http://msdn2.microsoft.com/en-us/library/ms937669.aspx +//http://msdn2.microsoft.com/en-us/library/aa448724.aspx +//http://docs.sun.com/source/819-3688/sun.specific.html#marker-998278 +//http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Function-Attributes.html#Function%20Attributes + +#if defined(__GNUC__) +#define M5_ATTR_NORETURN __attribute__((noreturn)) +#define M5_PRAGMA_NORETURN(x) +#define M5_DUMMY_RETURN +#elif defined(__SUNPRO_CC) +// this doesn't do anything with sun cc, but why not +#define M5_ATTR_NORETURN __sun_attr__((__noreturn__)) +#define M5_DUMMY_RETURN return (0); +#define M5_PRAGMA_NORETURN(x) _Pragma("does_not_return(x)") +#else +#error "Need to define compiler options in base/compiler.hh" +#endif + +#endif // __BASE_COMPILER_HH__ diff --git a/src/base/compression/lzss_compression.cc b/src/base/compression/lzss_compression.cc index eb35fb8f1..bd16d82c9 100644 --- a/src/base/compression/lzss_compression.cc +++ b/src/base/compression/lzss_compression.cc @@ -32,8 +32,8 @@ * LZSSCompression definitions. */ -#include <assert.h> - +#include <cassert> +#include <cstring> #include "base/compression/lzss_compression.hh" #include "base/misc.hh" //for fatal @@ -134,7 +134,7 @@ LZSSCompression::compress(uint8_t *dest, uint8_t *src, int size) if (dest_index >= size) { // Have expansion instead of compression, just copy. - memcpy(dest,src,size); + std::memcpy(dest,src,size); return size; } return dest_index; diff --git a/src/base/compression/null_compression.hh b/src/base/compression/null_compression.hh index ff110807a..798acb77a 100644 --- a/src/base/compression/null_compression.hh +++ b/src/base/compression/null_compression.hh @@ -50,11 +50,13 @@ class NullCompression : public CompressionAlgorithm int uncompress(uint8_t * dest, uint8_t *src, int size) { fatal("Can't uncompress data"); + M5_DUMMY_RETURN } int compress(uint8_t *dest, uint8_t *src, int size) { fatal("Can't compress data"); + M5_DUMMY_RETURN } }; diff --git a/src/base/cprintf.hh b/src/base/cprintf.hh index 9967b0578..dd2256e69 100644 --- a/src/base/cprintf.hh +++ b/src/base/cprintf.hh @@ -136,10 +136,10 @@ operator,(ArgList &alist, ArgListNull) inline void __cprintf(const std::string &format, ArgList &args) { args.dump(format); delete &args; } -#define __cprintf__(format, args...) \ - cp::__cprintf(format, (*(new cp::ArgList), args)) -#define cprintf(args...) \ - __cprintf__(args, cp::ArgListNull()) +#define __cprintf__(format, ...) \ + cp::__cprintf(format, (*(new cp::ArgList), __VA_ARGS__)) +#define cprintf(...) \ + __cprintf__(__VA_ARGS__, cp::ArgListNull()) // // ccprintf(stream, format, args, ...) prints to the specified stream @@ -148,10 +148,10 @@ __cprintf(const std::string &format, ArgList &args) inline void __ccprintf(std::ostream &stream, const std::string &format, ArgList &args) { args.dump(stream, format); delete &args; } -#define __ccprintf__(stream, format, args...) \ - cp::__ccprintf(stream, format, (*(new cp::ArgList), args)) -#define ccprintf(stream, args...) \ - __ccprintf__(stream, args, cp::ArgListNull()) +#define __ccprintf__(stream, format, ...) \ + cp::__ccprintf(stream, format, (*(new cp::ArgList), __VA_ARGS__)) +#define ccprintf(stream, ...) \ + __ccprintf__(stream, __VA_ARGS__, cp::ArgListNull()) // // csprintf(format, args, ...) returns a string @@ -160,10 +160,10 @@ __ccprintf(std::ostream &stream, const std::string &format, ArgList &args) inline std::string __csprintf(const std::string &format, ArgList &args) { std::string s = args.dumpToString(format); delete &args; return s; } -#define __csprintf__(format, args...) \ - cp::__csprintf(format, (*(new cp::ArgList), args)) -#define csprintf(args...) \ - __csprintf__(args, cp::ArgListNull()) +#define __csprintf__(format, ...) \ + cp::__csprintf(format, (*(new cp::ArgList), __VA_ARGS__)) +#define csprintf(...) \ + __csprintf__(__VA_ARGS__, cp::ArgListNull()) } diff --git a/src/base/hashmap.hh b/src/base/hashmap.hh index 570cbc152..b78cc02e8 100644 --- a/src/base/hashmap.hh +++ b/src/base/hashmap.hh @@ -59,7 +59,7 @@ namespace m5 { // namespace __hash_namespace { -#if !defined(__LP64__) && !defined(__alpha__) +#if !defined(__LP64__) && !defined(__alpha__) && !defined(__SUNPRO_CC) template<> struct hash<uint64_t> { size_t operator()(uint64_t r) const { diff --git a/src/base/hostinfo.cc b/src/base/hostinfo.cc index a7c93e712..7cc07c11e 100644 --- a/src/base/hostinfo.cc +++ b/src/base/hostinfo.cc @@ -33,6 +33,7 @@ #include <math.h> #include <unistd.h> +#include <stdio.h> #include <cstdlib> #include <cstring> #include <string> diff --git a/src/base/loader/object_file.cc b/src/base/loader/object_file.cc index da5aa9552..7424b9305 100644 --- a/src/base/loader/object_file.cc +++ b/src/base/loader/object_file.cc @@ -101,7 +101,7 @@ ObjectFile::close() } if (fileData) { - ::munmap(fileData, len); + ::munmap((char*)fileData, len); fileData = NULL; } } @@ -147,7 +147,7 @@ createObjectFile(const string &fname, bool raw) // don't know what it is close(fd); - munmap(fileData, len); + munmap((char*)fileData, len); return NULL; } diff --git a/src/base/misc.hh b/src/base/misc.hh index 1c5720ce1..c12c2fe20 100644 --- a/src/base/misc.hh +++ b/src/base/misc.hh @@ -33,8 +33,13 @@ #define __MISC_HH__ #include <assert.h> +#include "base/compiler.hh" #include "base/cprintf.hh" +#if defined(__SUNPRO_CC) +#define __FUNCTION__ "how to fix me?" +#endif + // // This implements a cprintf based panic() function. panic() should // be called when something happens that should never ever happen @@ -43,12 +48,13 @@ // // void __panic(const std::string&, cp::ArgList &, const char*, const char*, int) - __attribute__((noreturn)); -#define __panic__(format, args...) \ - __panic(format, (*(new cp::ArgList), args), \ - __FUNCTION__, __FILE__, __LINE__) -#define panic(args...) \ - __panic__(args, cp::ArgListNull()) + M5_ATTR_NORETURN; +#define __panic__(format, ...) \ + __panic(format, (*(new cp::ArgList), __VA_ARGS__), \ + __FUNCTION__ , __FILE__, __LINE__) +#define panic(...) \ + __panic__(__VA_ARGS__, cp::ArgListNull()) +M5_PRAGMA_NORETURN(__panic) // // This implements a cprintf based fatal() function. fatal() should @@ -59,32 +65,33 @@ void __panic(const std::string&, cp::ArgList &, const char*, const char*, int) // panic() does. // void __fatal(const std::string&, cp::ArgList &, const char*, const char*, int) - __attribute__((noreturn)); -#define __fatal__(format, args...) \ - __fatal(format, (*(new cp::ArgList), args), \ - __FUNCTION__, __FILE__, __LINE__) -#define fatal(args...) \ - __fatal__(args, cp::ArgListNull()) + M5_ATTR_NORETURN; +#define __fatal__(format, ...) \ + __fatal(format, (*(new cp::ArgList), __VA_ARGS__), \ + __FUNCTION__ , __FILE__, __LINE__) +#define fatal(...) \ + __fatal__(__VA_ARGS__, cp::ArgListNull()) +M5_PRAGMA_NORETURN(__fatal) // // This implements a cprintf based warn // void __warn(const std::string&, cp::ArgList &, const char*, const char*, int); -#define __warn__(format, args...) \ - __warn(format, (*(new cp::ArgList), args), \ - __FUNCTION__, __FILE__, __LINE__) -#define warn(args...) \ - __warn__(args, cp::ArgListNull()) +#define __warn__(format, ...) \ + __warn(format, (*(new cp::ArgList), __VA_ARGS__), \ + __FUNCTION__ , __FILE__, __LINE__) +#define warn(...) \ + __warn__(__VA_ARGS__, cp::ArgListNull()) // Only print the warning message the first time it is seen. This // doesn't check the warning string itself, it just only lets one // warning come from the statement. So, even if the arguments change // and that would have resulted in a different warning message, // subsequent messages would still be supressed. -#define warn_once(args...) do { \ +#define warn_once(...) do { \ static bool once = false; \ if (!once) { \ - __warn__(args, cp::ArgListNull()); \ + __warn__(__VA_ARGS__, cp::ArgListNull()); \ once = true; \ } \ } while (0) diff --git a/src/base/pollevent.cc b/src/base/pollevent.cc index fd5b09d28..32724b74d 100644 --- a/src/base/pollevent.cc +++ b/src/base/pollevent.cc @@ -30,7 +30,7 @@ #include <sys/ioctl.h> #include <sys/types.h> -#if defined(__sun__) +#if defined(__sun__) || defined(__SUNPRO_CC) #include <sys/file.h> #endif diff --git a/src/base/random.cc b/src/base/random.cc index 82c9e3566..0ccedcb00 100644 --- a/src/base/random.cc +++ b/src/base/random.cc @@ -29,12 +29,17 @@ * Ali Saidi */ +#if defined(__sun) +#include <ieeefp.h> +#endif +#ifdef __SUNPRO_CC +#include <stdlib.h> +#include <math.h> +#endif + #include <cstdlib> #include <cmath> -#if defined(__sun__) -#include <ieeefp.h> -#endif #include "sim/param.hh" #include "base/random.hh" @@ -72,7 +77,7 @@ getLong() double m5round(double r) { -#if defined(__sun__) +#if defined(__sun) double val; fp_rnd oldrnd = fpsetround(FP_RN); val = rint(r); diff --git a/src/base/remote_gdb.cc b/src/base/remote_gdb.cc index b1f50755b..988b50c65 100644 --- a/src/base/remote_gdb.cc +++ b/src/base/remote_gdb.cc @@ -631,7 +631,7 @@ BaseRemoteGDB::trap(int type) uint64_t val; size_t datalen, len; char data[GDBPacketBufLen + 1]; - char buffer[gdbregs.bytes() * 2 + 256]; + char *buffer; const char *p; char command, subcmd; string var; @@ -640,6 +640,8 @@ BaseRemoteGDB::trap(int type) if (!attached) return false; + buffer = (char*)malloc(gdbregs.bytes() * 2 + 256); + DPRINTF(GDBMisc, "trap: PC=%#x NPC=%#x\n", context->readPC(), context->readNextPC()); @@ -937,6 +939,7 @@ BaseRemoteGDB::trap(int type) } out: + free(buffer); return true; } diff --git a/src/base/statistics.hh b/src/base/statistics.hh index 577ea5eab..d8e8b4c15 100644 --- a/src/base/statistics.hh +++ b/src/base/statistics.hh @@ -50,6 +50,9 @@ #include <algorithm> #include <cassert> +#ifdef __SUNPRO_CC +#include <math.h> +#endif #include <cmath> #include <functional> #include <iosfwd> @@ -1410,7 +1413,7 @@ struct DistStor else if (val > params.max) overflow += number; else { - int index = (int)floor((val - params.min) / params.bucket_size); + int index = (int)std::floor((val - params.min) / params.bucket_size); assert(index < size(params)); cvec[index] += number; } diff --git a/src/base/stats/text.cc b/src/base/stats/text.cc index c4448efc9..ae0d65537 100644 --- a/src/base/stats/text.cc +++ b/src/base/stats/text.cc @@ -32,6 +32,10 @@ #define _GLIBCPP_USE_C99 1 #endif +#if defined(__sun) +#include <math.h> +#endif + #include <iostream> #include <sstream> #include <fstream> diff --git a/src/base/time.cc b/src/base/time.cc index cbc7256ee..76ba355b7 100644 --- a/src/base/time.cc +++ b/src/base/time.cc @@ -105,7 +105,11 @@ Time::date(string format) const char buf[256]; if (format.empty()) { +#ifdef __SUNPRO_CC + ctime_r(&sec, buf, 256); +#else ctime_r(&sec, buf); +#endif buf[24] = '\0'; return buf; } diff --git a/src/base/time.hh b/src/base/time.hh index 7aa4c50db..f10cc5d6c 100644 --- a/src/base/time.hh +++ b/src/base/time.hh @@ -97,7 +97,7 @@ std::ostream &operator<<(std::ostream &out, const Time &time); * @(#)time.h 8.2 (Berkeley) 7/10/94 */ -#if defined(__sun__) +#if defined(__sun) #define timersub(tvp, uvp, vvp) \ do { \ (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ diff --git a/src/base/timebuf.hh b/src/base/timebuf.hh index 1d0de8278..348f7a673 100644 --- a/src/base/timebuf.hh +++ b/src/base/timebuf.hh @@ -33,6 +33,7 @@ #define __BASE_TIMEBUF_HH__ #include <cassert> +#include <cstring> #include <vector> template <class T> @@ -143,7 +144,7 @@ class TimeBuffer char *ptr = data; for (int i = 0; i < size; i++) { index[i] = ptr; - memset(ptr, 0, sizeof(T)); + std::memset(ptr, 0, sizeof(T)); new (ptr) T; ptr += sizeof(T); } @@ -171,7 +172,7 @@ class TimeBuffer if (ptr >= size) ptr -= size; (reinterpret_cast<T *>(index[ptr]))->~T(); - memset(index[ptr], 0, sizeof(T)); + std::memset(index[ptr], 0, sizeof(T)); new (index[ptr]) T; } diff --git a/src/base/trace.hh b/src/base/trace.hh index 9b053990c..a46643159 100644 --- a/src/base/trace.hh +++ b/src/base/trace.hh @@ -186,39 +186,39 @@ do { \ Trace::dataDump(curTick, name(), data, count); \ } while (0) -#define __dprintf(cycle, name, format, args...) \ - Trace::dprintf(format, (*(new cp::ArgList), args), cycle, name) +#define __dprintf(cycle, name, format, ...) \ + Trace::dprintf(format, (*(new cp::ArgList), __VA_ARGS__), cycle, name) -#define DPRINTF(x, args...) \ +#define DPRINTF(x, ...) \ do { \ if (Trace::IsOn(Trace::x)) \ - __dprintf(curTick, name(), args, cp::ArgListNull()); \ + __dprintf(curTick, name(), __VA_ARGS__, cp::ArgListNull()); \ } while (0) -#define DPRINTFR(x, args...) \ +#define DPRINTFR(x, ...) \ do { \ if (Trace::IsOn(Trace::x)) \ - __dprintf((Tick)-1, std::string(), args, cp::ArgListNull()); \ + __dprintf((Tick)-1, std::string(), __VA_ARGS__, cp::ArgListNull()); \ } while (0) -#define DPRINTFN(args...) \ +#define DPRINTFN(...) \ do { \ - __dprintf(curTick, name(), args, cp::ArgListNull()); \ + __dprintf(curTick, name(), __VA_ARGS__, cp::ArgListNull()); \ } while (0) -#define DPRINTFNR(args...) \ +#define DPRINTFNR(...) \ do { \ - __dprintf((Tick)-1, string(), args, cp::ArgListNull()); \ + __dprintf((Tick)-1, string(), __VA_ARGS__, cp::ArgListNull()); \ } while (0) #else // !TRACING_ON #define DTRACE(x) (false) #define DCOUT(x) if (0) DebugOut() -#define DPRINTF(x, args...) do {} while (0) -#define DPRINTFR(args...) do {} while (0) -#define DPRINTFN(args...) do {} while (0) -#define DPRINTFNR(args...) do {} while (0) +#define DPRINTF(x, ...) do {} while (0) +#define DPRINTFR(...) do {} while (0) +#define DPRINTFN(...) do {} while (0) +#define DPRINTFNR(...) do {} while (0) #define DDUMP(x, data, count) do {} while (0) #endif // TRACING_ON diff --git a/src/cpu/SConscript b/src/cpu/SConscript index 5771a7904..4d4b7574c 100644 --- a/src/cpu/SConscript +++ b/src/cpu/SConscript @@ -54,18 +54,18 @@ execfile(models_db.srcnode().abspath) exec_sig_template = ''' virtual Fault execute(%s *xc, Trace::InstRecord *traceData) const = 0; virtual Fault initiateAcc(%s *xc, Trace::InstRecord *traceData) const -{ panic("initiateAcc not defined!"); }; +{ panic("initiateAcc not defined!"); M5_DUMMY_RETURN }; virtual Fault completeAcc(Packet *pkt, %s *xc, Trace::InstRecord *traceData) const -{ panic("completeAcc not defined!"); }; +{ panic("completeAcc not defined!"); M5_DUMMY_RETURN }; ''' mem_ini_sig_template = ''' -virtual Fault initiateAcc(%s *xc, Trace::InstRecord *traceData) const { panic("Not defined!"); }; +virtual Fault initiateAcc(%s *xc, Trace::InstRecord *traceData) const { panic("Not defined!"); M5_DUMMY_RETURN }; ''' mem_comp_sig_template = ''' -virtual Fault completeAcc(uint8_t *data, %s *xc, Trace::InstRecord *traceData) const { panic("Not defined!"); return NoFault; }; +virtual Fault completeAcc(uint8_t *data, %s *xc, Trace::InstRecord *traceData) const { panic("Not defined!"); return NoFault; M5_DUMMY_RETURN }; ''' # Generate a temporary CPU list, including the CheckerCPU if diff --git a/src/cpu/activity.cc b/src/cpu/activity.cc index 9a0f6d98d..15e0556ad 100644 --- a/src/cpu/activity.cc +++ b/src/cpu/activity.cc @@ -28,6 +28,8 @@ * Authors: Kevin Lim */ +#include <cstring> + #include "base/timebuf.hh" #include "cpu/activity.hh" @@ -37,7 +39,7 @@ ActivityRecorder::ActivityRecorder(int num_stages, int longest_latency, activityCount(activity), numStages(num_stages) { stageActive = new bool[numStages]; - memset(stageActive, 0, numStages); + std::memset(stageActive, 0, numStages); } void @@ -114,7 +116,7 @@ void ActivityRecorder::reset() { activityCount = 0; - memset(stageActive, 0, numStages); + std::memset(stageActive, 0, numStages); for (int i = 0; i < longestLatency + 1; ++i) activityBuffer.advance(); } diff --git a/src/cpu/base.cc b/src/cpu/base.cc index b03bc19a5..deb4e02c4 100644 --- a/src/cpu/base.cc +++ b/src/cpu/base.cc @@ -96,7 +96,7 @@ CPUProgressEvent::description() #if FULL_SYSTEM BaseCPU::BaseCPU(Params *p) - : MemObject(p->name), clock(p->clock), instCnt(0), checkInterrupts(true), + : MemObject(p->name), clock(p->clock), instCnt(0), params(p), number_of_threads(p->numberOfThreads), system(p->system), phase(p->phase) #else @@ -334,7 +334,6 @@ BaseCPU::takeOverFrom(BaseCPU *oldCPU) #if FULL_SYSTEM interrupts = oldCPU->interrupts; - checkInterrupts = oldCPU->checkInterrupts; for (int i = 0; i < threadContexts.size(); ++i) threadContexts[i]->profileClear(); @@ -371,7 +370,6 @@ BaseCPU::post_interrupt(int int_type) void BaseCPU::post_interrupt(int int_num, int index) { - checkInterrupts = true; interrupts.post(int_num, index); } diff --git a/src/cpu/base.hh b/src/cpu/base.hh index 89c7d9dda..3ae9c60b6 100644 --- a/src/cpu/base.hh +++ b/src/cpu/base.hh @@ -106,7 +106,6 @@ class BaseCPU : public MemObject virtual void post_interrupt(int int_num, int index); virtual void clear_interrupt(int int_num, int index); virtual void clear_interrupts(); - bool checkInterrupts; bool check_interrupts(ThreadContext * tc) const { return interrupts.check_interrupts(tc); } diff --git a/src/cpu/exetrace.cc b/src/cpu/exetrace.cc index 23291825d..bfd701271 100644 --- a/src/cpu/exetrace.cc +++ b/src/cpu/exetrace.cc @@ -295,7 +295,8 @@ Trace::InstRecord::dump(ostream &outs) bool diffPC = false; bool diffCC = false; bool diffInst = false; - bool diffRegs = false; + bool diffIntRegs = false; + bool diffFpRegs = false; bool diffTpc = false; bool diffTnpc = false; bool diffTstate = false; @@ -359,10 +360,15 @@ Trace::InstRecord::dump(ostream &outs) } for (int i = 0; i < TheISA::NumIntArchRegs; i++) { if (thread->readIntReg(i) != shared_data->intregs[i]) { - diffRegs = true; + diffIntRegs = true; } } - uint64_t oldTl = thread->readMiscReg(MISCREG_TL); + for (int i = 0; i < TheISA::NumFloatRegs/2; i++) { + if (thread->readFloatRegBits(i,FloatRegFile::DoubleWidth) != shared_data->fpregs[i]) { + diffFpRegs = true; + } + } + uint64_t oldTl = thread->readMiscReg(MISCREG_TL); if (oldTl != shared_data->tl) diffTl = true; for (int i = 1; i <= MaxTL; i++) { @@ -440,12 +446,12 @@ Trace::InstRecord::dump(ostream &outs) diffTlb = true; } - if ((diffPC || diffCC || diffInst || diffRegs || diffTpc || - diffTnpc || diffTstate || diffTt || diffHpstate || - diffHtstate || diffHtba || diffPstate || diffY || - diffCcr || diffTl || diffGl || diffAsi || diffPil || - diffCwp || diffCansave || diffCanrestore || - diffOtherwin || diffCleanwin || diffTlb) + if ((diffPC || diffCC || diffInst || diffIntRegs || + diffFpRegs || diffTpc || diffTnpc || diffTstate || + diffTt || diffHpstate || diffHtstate || diffHtba || + diffPstate || diffY || diffCcr || diffTl || diffGl || + diffAsi || diffPil || diffCwp || diffCansave || + diffCanrestore || diffOtherwin || diffCleanwin || diffTlb) && !((staticInst->machInst & 0xC1F80000) == 0x81D00000) && !(((staticInst->machInst & 0xC0000000) == 0xC0000000) && shared_data->tl == thread->readMiscReg(MISCREG_TL) + 1) @@ -458,8 +464,10 @@ Trace::InstRecord::dump(ostream &outs) outs << " [CC]"; if (diffInst) outs << " [Instruction]"; - if (diffRegs) + if (diffIntRegs) outs << " [IntRegs]"; + if (diffFpRegs) + outs << " [FpRegs]"; if (diffTpc) outs << " [Tpc]"; if (diffTnpc) @@ -608,26 +616,22 @@ Trace::InstRecord::dump(ostream &outs) printSectionHeader(outs, "General Purpose Registers"); static const char * regtypes[4] = {"%g", "%o", "%l", "%i"}; - for(int y = 0; y < 4; y++) - { - for(int x = 0; x < 8; x++) - { + for(int y = 0; y < 4; y++) { + for(int x = 0; x < 8; x++) { char label[8]; sprintf(label, "%s%d", regtypes[y], x); printRegPair(outs, label, thread->readIntReg(y*8+x), shared_data->intregs[y*8+x]); - /*outs << regtypes[y] << x << " " ; - outs << "0x" << hex << setw(16) - << thread->readIntReg(y*8+x); - if (thread->readIntReg(y*8 + x) - != shared_data->intregs[y*8+x]) - outs << " X "; - else - outs << " | "; - outs << "0x" << setw(16) << hex - << shared_data->intregs[y*8+x] - << endl;*/ + } + } + if (diffFpRegs) { + for (int x = 0; x < 32; x++) { + char label[8]; + sprintf(label, "%%f%d", x); + printRegPair(outs, label, + thread->readFloatRegBits(x,FloatRegFile::DoubleWidth), + shared_data->fpregs[x]); } } if (diffTlb) { diff --git a/src/cpu/exetrace.hh b/src/cpu/exetrace.hh index 6562e5265..a825f6a82 100644 --- a/src/cpu/exetrace.hh +++ b/src/cpu/exetrace.hh @@ -32,6 +32,7 @@ #ifndef __EXETRACE_HH__ #define __EXETRACE_HH__ +#include <cstring> #include <fstream> #include <vector> @@ -169,7 +170,7 @@ InstRecord::setRegs(const IntRegFile ®s) if (!iregs) iregs = new iRegFile; - memcpy(&iregs->regs, ®s, sizeof(IntRegFile)); + std::memcpy(&iregs->regs, ®s, sizeof(IntRegFile)); regs_valid = true; } diff --git a/src/cpu/m5legion_interface.h b/src/cpu/m5legion_interface.h index 4cb270e66..81714f769 100644 --- a/src/cpu/m5legion_interface.h +++ b/src/cpu/m5legion_interface.h @@ -30,7 +30,7 @@ #include <unistd.h> -#define VERSION 0xA1000007 +#define VERSION 0xA1000008 #define OWN_M5 0x000000AA #define OWN_LEGION 0x00000055 @@ -47,6 +47,7 @@ typedef struct { uint32_t instruction; uint32_t new_instruction; uint64_t intregs[32]; + uint64_t fpregs[32]; uint64_t tpc[8]; uint64_t tnpc[8]; diff --git a/src/cpu/o3/alpha/cpu_impl.hh b/src/cpu/o3/alpha/cpu_impl.hh index fb0962056..41f149963 100644 --- a/src/cpu/o3/alpha/cpu_impl.hh +++ b/src/cpu/o3/alpha/cpu_impl.hh @@ -213,8 +213,6 @@ AlphaO3CPU<Impl>::hwrei(unsigned tid) this->thread[tid]->kernelStats->hwrei(); - this->checkInterrupts = true; - // FIXME: XXX check for interrupts? XXX return NoFault; } @@ -266,7 +264,6 @@ AlphaO3CPU<Impl>::processInterrupts(Fault interrupt) this->interrupts.updateIntrInfo(this->threadContexts[0]); DPRINTF(O3CPU, "Interrupt %s being handled\n", interrupt->name()); - this->checkInterrupts = false; this->trap(interrupt, 0); } diff --git a/src/cpu/o3/commit_impl.hh b/src/cpu/o3/commit_impl.hh index 75fe1ed2a..f1457922c 100644 --- a/src/cpu/o3/commit_impl.hh +++ b/src/cpu/o3/commit_impl.hh @@ -672,8 +672,7 @@ DefaultCommit<Impl>::commit() } else { DPRINTF(Commit, "Interrupt pending, waiting for ROB to empty.\n"); } - } else if (cpu->checkInterrupts && - cpu->check_interrupts(cpu->tcBase(0)) && + } else if (cpu->check_interrupts(cpu->tcBase(0)) && commitStatus[0] != TrapPending && !trapSquash[0] && !tcSquash[0]) { diff --git a/src/cpu/o3/sparc/cpu_impl.hh b/src/cpu/o3/sparc/cpu_impl.hh index 4a194cbda..c039a8fec 100644 --- a/src/cpu/o3/sparc/cpu_impl.hh +++ b/src/cpu/o3/sparc/cpu_impl.hh @@ -241,7 +241,6 @@ SparcO3CPU<Impl>::processInterrupts(Fault interrupt) this->interrupts.updateIntrInfo(this->threadContexts[0]); DPRINTF(O3CPU, "Interrupt %s being handled\n", interrupt->name()); - this->checkInterrupts = false; this->trap(interrupt, 0); } diff --git a/src/cpu/ozone/cpu_impl.hh b/src/cpu/ozone/cpu_impl.hh index accc8d294..a854de8de 100644 --- a/src/cpu/ozone/cpu_impl.hh +++ b/src/cpu/ozone/cpu_impl.hh @@ -182,10 +182,6 @@ OzoneCPU<Impl>::OzoneCPU(Params *p) globalSeqNum = 1; -#if FULL_SYSTEM - checkInterrupts = false; -#endif - lockFlag = 0; // Setup rename table, initializing all values to ready. @@ -684,8 +680,6 @@ OzoneCPU<Impl>::hwrei() lockAddrList.clear(); thread.kernelStats->hwrei(); - checkInterrupts = true; - // FIXME: XXX check for interrupts? XXX return NoFault; } @@ -704,7 +698,6 @@ OzoneCPU<Impl>::processInterrupts() if (interrupt != NoFault) { this->interrupts.updateIntrInfo(thread.getTC()); - this->checkInterrupts = false; interrupt->invoke(thread.getTC()); } } diff --git a/src/cpu/ozone/inorder_back_end_impl.hh b/src/cpu/ozone/inorder_back_end_impl.hh index 87bf0a7a2..84f935a72 100644 --- a/src/cpu/ozone/inorder_back_end_impl.hh +++ b/src/cpu/ozone/inorder_back_end_impl.hh @@ -88,7 +88,6 @@ InorderBackEnd<Impl>::checkInterrupts() int ipl = 0; int summary = 0; - cpu->checkInterrupts = false; if (thread->readMiscReg(IPR_ASTRR)) panic("asynchronous traps not implemented\n"); @@ -151,8 +150,7 @@ InorderBackEnd<Impl>::tick() // I'm waiting for it to drain. (for now just squash) #if FULL_SYSTEM if (interruptBlocked || - (cpu->checkInterrupts && - cpu->check_interrupts(tc))) { + cpu->check_interrupts(tc)) { if (!robEmpty()) { interruptBlocked = true; //AlphaDep diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc index ddccc5a9b..b8d1f3bed 100644 --- a/src/cpu/simple/base.cc +++ b/src/cpu/simple/base.cc @@ -311,12 +311,11 @@ void BaseSimpleCPU::checkForInterrupts() { #if FULL_SYSTEM - if (checkInterrupts && check_interrupts(tc)) { + if (check_interrupts(tc)) { Fault interrupt = interrupts.getInterrupt(tc); if (interrupt != NoFault) { interrupts.updateIntrInfo(tc); - checkInterrupts = false; interrupt->invoke(tc); } } @@ -439,6 +438,8 @@ BaseSimpleCPU::advancePC(Fault fault) if (fault != NoFault) { curMacroStaticInst = StaticInst::nullStaticInstPtr; fault->invoke(tc); + thread->setMicroPC(0); + thread->setNextMicroPC(1); } else { //If we're at the last micro op for this instruction if (curStaticInst->isLastMicroOp()) { diff --git a/src/cpu/simple/base.hh b/src/cpu/simple/base.hh index 294ebd69f..c4853b916 100644 --- a/src/cpu/simple/base.hh +++ b/src/cpu/simple/base.hh @@ -186,7 +186,8 @@ class BaseSimpleCPU : public BaseCPU // These functions are only used in CPU models that split // effective address computation from the actual memory access. void setEA(Addr EA) { panic("BaseSimpleCPU::setEA() not implemented\n"); } - Addr getEA() { panic("BaseSimpleCPU::getEA() not implemented\n"); } + Addr getEA() { panic("BaseSimpleCPU::getEA() not implemented\n"); + M5_DUMMY_RETURN} void prefetch(Addr addr, unsigned flags) { diff --git a/src/dev/alpha/tsunami_io.cc b/src/dev/alpha/tsunami_io.cc index 38986b77e..d701dc98f 100644 --- a/src/dev/alpha/tsunami_io.cc +++ b/src/dev/alpha/tsunami_io.cc @@ -57,25 +57,77 @@ using namespace std; //Should this be AlphaISA? using namespace TheISA; -TsunamiIO::RTC::RTC(const string &n, Tsunami* tsunami, time_t t, Tick i) - : _name(n), event(tsunami, i), addr(0) +TsunamiIO::RTC::RTC(const string &n, Tsunami* tsunami, const vector<int> &t, + bool bcd, Tick i) + : _name(n), event(tsunami, i), addr(0), year_is_bcd(bcd) { memset(clock_data, 0, sizeof(clock_data)); stat_regA = RTCA_32768HZ | RTCA_1024HZ; stat_regB = RTCB_PRDC_IE |RTCB_BIN | RTCB_24HR; + if (year_is_bcd) { + // The RTC uses BCD for the last two digits in the year. + // They python year is a full year. + int _year = t[0] % 100; + int tens = _year / 10; + int ones = _year % 10; + + year = (tens << 4) + ones; + } else { + // Even though the datasheet says that the year field should be + // interpreted as BCD, we just enter the number of years since + // 1900 since linux seems to be happy with that (and I believe + // that Tru64 was as well) + year = t[0] - 1900; + } + + mon = t[1]; + mday = t[2]; + hour = t[3]; + min = t[4]; + sec = t[5]; + + // wday is defined to be in the range from 1 - 7 with 1 being Sunday. + // the value coming from python is in the range from 0 - 6 with 0 being + // Monday. Fix that here. + wday = t[6] + 2; + if (wday > 7) + wday -= 7; + + DPRINTFN("Real-time clock set to %s", getDateString()); +} + +std::string +TsunamiIO::RTC::getDateString() +{ struct tm tm; - gmtime_r(&t, &tm); - sec = tm.tm_sec; - min = tm.tm_min; - hour = tm.tm_hour; - wday = tm.tm_wday + 1; - mday = tm.tm_mday; - mon = tm.tm_mon + 1; - year = tm.tm_year; + memset(&tm, 0, sizeof(tm)); + + if (year_is_bcd) { + // undo the BCD and conver to years since 1900 guessing that + // anything before 1970 is actually after 2000 + int _year = (year >> 4) * 10 + (year & 0xf); + if (_year < 70) + _year += 100; + + tm.tm_year = _year; + } else { + // number of years since 1900 + tm.tm_year = year; + } + + // unix is 0-11 for month + tm.tm_mon = mon - 1; + tm.tm_mday = mday; + tm.tm_hour = hour; + tm.tm_min = min; + tm.tm_sec = sec; + + // to add more annoyance unix is 0 - 6 with 0 as sunday + tm.tm_wday = wday - 1; - DPRINTFN("Real-time clock set to %s", asctime(&tm)); + return asctime(&tm); } void @@ -424,7 +476,8 @@ TsunamiIO::PITimer::Counter::CounterEvent::description() TsunamiIO::TsunamiIO(Params *p) : BasicPioDevice(p), tsunami(p->tsunami), pitimer(p->name + "pitimer"), - rtc(p->name + ".rtc", p->tsunami, p->init_time, p->frequency) + rtc(p->name + ".rtc", p->tsunami, p->init_time, p->year_is_bcd, + p->frequency) { pioSize = 0x100; @@ -649,7 +702,8 @@ BEGIN_DECLARE_SIM_OBJECT_PARAMS(TsunamiIO) Param<Tick> frequency; SimObjectParam<Platform *> platform; SimObjectParam<System *> system; - Param<time_t> time; + VectorParam<int> time; + Param<bool> year_is_bcd; SimObjectParam<Tsunami *> tsunami; END_DECLARE_SIM_OBJECT_PARAMS(TsunamiIO) @@ -662,6 +716,7 @@ BEGIN_INIT_SIM_OBJECT_PARAMS(TsunamiIO) INIT_PARAM(platform, "platform"), INIT_PARAM(system, "system object"), INIT_PARAM(time, "System time to use (0 for actual time"), + INIT_PARAM(year_is_bcd, ""), INIT_PARAM(tsunami, "Tsunami") END_INIT_SIM_OBJECT_PARAMS(TsunamiIO) @@ -676,6 +731,7 @@ CREATE_SIM_OBJECT(TsunamiIO) p->platform = platform; p->system = system; p->init_time = time; + p->year_is_bcd = year_is_bcd; p->tsunami = tsunami; return new TsunamiIO(p); } diff --git a/src/dev/alpha/tsunami_io.hh b/src/dev/alpha/tsunami_io.hh index b0c368eb8..f42af4197 100644 --- a/src/dev/alpha/tsunami_io.hh +++ b/src/dev/alpha/tsunami_io.hh @@ -85,6 +85,9 @@ class TsunamiIO : public BasicPioDevice /** Current RTC register address/index */ int addr; + /** should the year be interpreted as BCD? */ + bool year_is_bcd; + /** Data for real-time clock function */ union { uint8_t clock_data[10]; @@ -110,7 +113,8 @@ class TsunamiIO : public BasicPioDevice uint8_t stat_regB; public: - RTC(const std::string &name, Tsunami* tsunami, time_t t, Tick i); + RTC(const std::string &name, Tsunami* tsunami, + const std::vector<int> &t, bool bcd, Tick i); /** RTC address port: write address of RTC RAM data to access */ void writeAddr(const uint8_t data); @@ -121,6 +125,9 @@ class TsunamiIO : public BasicPioDevice /** RTC read data */ uint8_t readData(); + /** RTC get the date */ + std::string getDateString(); + /** * Serialize this object to the given output stream. * @param base The base name of the counter object. @@ -313,8 +320,10 @@ class TsunamiIO : public BasicPioDevice { Tick frequency; Tsunami *tsunami; - time_t init_time; + std::vector<int> init_time; + bool year_is_bcd; }; + protected: const Params *params() const { return (const Params*)_params; } diff --git a/src/dev/baddev.cc b/src/dev/baddev.cc index 6a7060455..a2d2650cb 100644 --- a/src/dev/baddev.cc +++ b/src/dev/baddev.cc @@ -56,12 +56,14 @@ Tick BadDevice::read(PacketPtr pkt) { panic("Device %s not imlpmented\n", devname); + M5_DUMMY_RETURN } Tick BadDevice::write(PacketPtr pkt) { panic("Device %s not imlpmented\n", devname); + M5_DUMMY_RETURN } BEGIN_DECLARE_SIM_OBJECT_PARAMS(BadDevice) diff --git a/src/dev/ide_atareg.h b/src/dev/ide_atareg.h index df16d09d5..b9f1d9e0f 100644 --- a/src/dev/ide_atareg.h +++ b/src/dev/ide_atareg.h @@ -35,7 +35,7 @@ #if defined(linux) #include <endian.h> -#elif defined(__sun__) +#elif defined(__sun) #include <sys/isa_defs.h> #else #include <machine/endian.h> diff --git a/src/dev/io_device.hh b/src/dev/io_device.hh index aa242d170..c56eba267 100644 --- a/src/dev/io_device.hh +++ b/src/dev/io_device.hh @@ -109,7 +109,7 @@ class DmaPort : public Port virtual bool recvTiming(PacketPtr pkt); virtual Tick recvAtomic(PacketPtr pkt) - { panic("dma port shouldn't be used for pio access."); } + { panic("dma port shouldn't be used for pio access."); M5_DUMMY_RETURN } virtual void recvFunctional(PacketPtr pkt) { panic("dma port shouldn't be used for pio access."); } diff --git a/src/dev/pciconfigall.cc b/src/dev/pciconfigall.cc index 39c8f0fa0..bd1855847 100644 --- a/src/dev/pciconfigall.cc +++ b/src/dev/pciconfigall.cc @@ -83,8 +83,10 @@ PciConfigAll::write(PacketPtr pkt) { assert(pkt->result == Packet::Unknown); panic("Attempting to write to config space on non-existant device\n"); + M5_DUMMY_RETURN } + void PciConfigAll::addressRanges(AddrRangeList &range_list) { diff --git a/src/dev/pcidev.hh b/src/dev/pcidev.hh index fbfdbb65c..56e3ffb4a 100644 --- a/src/dev/pcidev.hh +++ b/src/dev/pcidev.hh @@ -37,6 +37,8 @@ #ifndef __DEV_PCIDEV_HH__ #define __DEV_PCIDEV_HH__ +#include <cstring> + #include "dev/io_device.hh" #include "dev/pcireg.h" #include "dev/platform.hh" @@ -62,8 +64,8 @@ class PciConfigData : public SimObject PciConfigData(const std::string &name) : SimObject(name) { - memset(config.data, 0, sizeof(config.data)); - memset(BARSize, 0, sizeof(BARSize)); + std::memset(config.data, 0, sizeof(config.data)); + std::memset(BARSize, 0, sizeof(BARSize)); } /** The first 64 bytes */ diff --git a/src/dev/platform.cc b/src/dev/platform.cc index 07288249c..b2b8695a7 100644 --- a/src/dev/platform.cc +++ b/src/dev/platform.cc @@ -62,6 +62,7 @@ Addr Platform::pciToDma(Addr pciAddr) const { panic("No PCI dma support in platform."); + M5_DUMMY_RETURN } void diff --git a/src/dev/sparc/mm_disk.cc b/src/dev/sparc/mm_disk.cc index 9057c28be..018415f6c 100644 --- a/src/dev/sparc/mm_disk.cc +++ b/src/dev/sparc/mm_disk.cc @@ -33,6 +33,8 @@ * in legion. Any access is translated to an offset in the disk image. */ +#include <cstring> + #include "base/trace.hh" #include "dev/sparc/mm_disk.hh" #include "dev/platform.hh" @@ -45,7 +47,7 @@ MmDisk::MmDisk(Params *p) : BasicPioDevice(p), image(p->image), curSector((uint64_t)-1), dirty(false) { - memset(&bytes, 0, SectorSize); + std::memset(&bytes, 0, SectorSize); pioSize = image->size() * SectorSize; } @@ -99,6 +101,7 @@ Tick MmDisk::write(PacketPtr pkt) { panic("need to implement\n"); + M5_DUMMY_RETURN } diff --git a/src/dev/sparc/t1000.cc b/src/dev/sparc/t1000.cc index 4a8de77a5..233808631 100644 --- a/src/dev/sparc/t1000.cc +++ b/src/dev/sparc/t1000.cc @@ -57,6 +57,7 @@ Tick T1000::intrFrequency() { panic("Need implementation\n"); + M5_DUMMY_RETURN } void @@ -89,6 +90,7 @@ Addr T1000::pciToDma(Addr pciAddr) const { panic("Need implementation\n"); + M5_DUMMY_RETURN } @@ -96,6 +98,7 @@ Addr T1000::calcConfigAddr(int bus, int dev, int func) { panic("Need implementation\n"); + M5_DUMMY_RETURN } void diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh index 9c41983fc..b8c896498 100644 --- a/src/mem/cache/cache_impl.hh +++ b/src/mem/cache/cache_impl.hh @@ -40,6 +40,7 @@ #include <cassert> #include <iostream> +#include <cstring> #include <string> #include "sim/host.hh" @@ -125,7 +126,7 @@ Cache<TagStore,Coherence>::handleAccess(PacketPtr &pkt, int & lat, assert(offset < blkSize); assert(pkt->getSize() <= blkSize); assert(offset+pkt->getSize() <= blkSize); - memcpy(blk->data + offset, pkt->getPtr<uint8_t>(), + std::memcpy(blk->data + offset, pkt->getPtr<uint8_t>(), pkt->getSize()); } else if (!(pkt->flags & SATISFIED)) { pkt->flags |= SATISFIED; @@ -133,7 +134,7 @@ Cache<TagStore,Coherence>::handleAccess(PacketPtr &pkt, int & lat, assert(offset < blkSize); assert(pkt->getSize() <= blkSize); assert(offset + pkt->getSize() <=blkSize); - memcpy(pkt->getPtr<uint8_t>(), blk->data + offset, + std::memcpy(pkt->getPtr<uint8_t>(), blk->data + offset, pkt->getSize()); } return blk; @@ -176,7 +177,7 @@ Cache<TagStore,Coherence>::handleAccess(PacketPtr &pkt, int & lat, if (blk->checkWrite(pkt->req)) { write_data = true; blk->status |= BlkDirty; - memcpy(blk->data + offset, pkt->getPtr<uint8_t>(), + std::memcpy(blk->data + offset, pkt->getPtr<uint8_t>(), pkt->getSize()); } } else { @@ -184,7 +185,7 @@ Cache<TagStore,Coherence>::handleAccess(PacketPtr &pkt, int & lat, if (pkt->req->isLocked()) { blk->trackLoadLocked(pkt->req); } - memcpy(pkt->getPtr<uint8_t>(), blk->data + offset, + std::memcpy(pkt->getPtr<uint8_t>(), blk->data + offset, pkt->getSize()); } @@ -228,7 +229,7 @@ Cache<TagStore,Coherence>::handleFill(BlkType *blk, PacketPtr &pkt, if (pkt->isRead()) { - memcpy(blk->data, pkt->getPtr<uint8_t>(), blkSize); + std::memcpy(blk->data, pkt->getPtr<uint8_t>(), blkSize); } blk->whenReady = pkt->finishTime; @@ -249,14 +250,14 @@ Cache<TagStore,Coherence>::handleFill(BlkType *blk, PacketPtr &pkt, if (target->isWrite()) { if (blk->checkWrite(pkt->req)) { blk->status |= BlkDirty; - memcpy(blk->data + target->getOffset(blkSize), + std::memcpy(blk->data + target->getOffset(blkSize), target->getPtr<uint8_t>(), target->getSize()); } } else { if (pkt->req->isLocked()) { blk->trackLoadLocked(pkt->req); } - memcpy(target->getPtr<uint8_t>(), + std::memcpy(target->getPtr<uint8_t>(), blk->data + target->getOffset(blkSize), target->getSize()); } @@ -285,7 +286,7 @@ Cache<TagStore,Coherence>::handleFill(BlkType *blk, MSHR * mshr, blk = doReplacement(blk, pkt, new_state, writebacks); if (pkt->isRead()) { - memcpy(blk->data, pkt->getPtr<uint8_t>(), blkSize); + std::memcpy(blk->data, pkt->getPtr<uint8_t>(), blkSize); } blk->whenReady = pkt->finishTime; @@ -337,14 +338,14 @@ Cache<TagStore,Coherence>::handleFill(BlkType *blk, MSHR * mshr, if (target->isWrite()) { if (blk->checkWrite(pkt->req)) { blk->status |= BlkDirty; - memcpy(blk->data + target->getOffset(blkSize), + std::memcpy(blk->data + target->getOffset(blkSize), target->getPtr<uint8_t>(), target->getSize()); } } else { if (pkt->req->isLocked()) { blk->trackLoadLocked(pkt->req); } - memcpy(target->getPtr<uint8_t>(), + std::memcpy(target->getPtr<uint8_t>(), blk->data + target->getOffset(blkSize), target->getSize()); } @@ -384,7 +385,7 @@ Cache<TagStore,Coherence>::handleSnoop(BlkType *blk, assert(offset < blkSize); assert(pkt->getSize() <= blkSize); assert(offset + pkt->getSize() <=blkSize); - memcpy(pkt->getPtr<uint8_t>(), blk->data + offset, pkt->getSize()); + std::memcpy(pkt->getPtr<uint8_t>(), blk->data + offset, pkt->getSize()); handleSnoop(blk, new_state); } @@ -431,7 +432,7 @@ Cache<TagStore,Coherence>::writebackBlk(BlkType *blk) new Request(tags->regenerateBlkAddr(blk->tag, blk->set), blkSize, 0); PacketPtr writeback = new Packet(writebackReq, Packet::Writeback, -1); writeback->allocate(); - memcpy(writeback->getPtr<uint8_t>(),blk->data,blkSize); + std::memcpy(writeback->getPtr<uint8_t>(),blk->data,blkSize); blk->status &= ~BlkDirty; return writeback; @@ -463,7 +464,7 @@ Cache<TagStore,Coherence>::verifyData(BlkType *blk) assert(blkSize == blk->size); } - retval = memcmp(tmp_data, blk->data, blkSize) == 0; + retval = std::memcmp(tmp_data, blk->data, blkSize) == 0; delete [] tmp_data; return retval; } @@ -664,7 +665,7 @@ Cache<TagStore,Coherence>::sendResult(PacketPtr &pkt, MSHR* mshr, DPRINTF(Cache, "Block for blk addr %x moving from state " "%i to %i\n", pkt->getAddr(), old_state, new_state); //Set the state on the upgrade - memcpy(pkt->getPtr<uint8_t>(), blk->data, blkSize); + std::memcpy(pkt->getPtr<uint8_t>(), blk->data, blkSize); PacketList writebacks; handleFill(blk, mshr, new_state, writebacks, pkt); assert(writebacks.empty()); @@ -839,7 +840,7 @@ Cache<TagStore,Coherence>::snoop(PacketPtr &pkt) assert(offset < blkSize); assert(pkt->getSize() <= blkSize); assert(offset + pkt->getSize() <=blkSize); - memcpy(pkt->getPtr<uint8_t>(), mshr->pkt->getPtr<uint8_t>() + offset, pkt->getSize()); + std::memcpy(pkt->getPtr<uint8_t>(), mshr->pkt->getPtr<uint8_t>() + offset, pkt->getSize()); respondToSnoop(pkt, curTick + hitLatency); } diff --git a/src/mem/cache/miss/blocking_buffer.cc b/src/mem/cache/miss/blocking_buffer.cc index 4a431d82d..a1af88341 100644 --- a/src/mem/cache/miss/blocking_buffer.cc +++ b/src/mem/cache/miss/blocking_buffer.cc @@ -32,6 +32,7 @@ * @file * Definitions of a simple buffer for a blocking cache. */ +#include <cstring> #include "mem/cache/base_cache.hh" #include "mem/cache/miss/blocking_buffer.hh" @@ -60,7 +61,7 @@ BlockingBuffer::handleMiss(PacketPtr &pkt, int blk_size, Tick time) wb.allocate(pkt->cmd, blk_addr, blk_size, pkt); } - memcpy(wb.pkt->getPtr<uint8_t>(), pkt->getPtr<uint8_t>(), blk_size); + std::memcpy(wb.pkt->getPtr<uint8_t>(), pkt->getPtr<uint8_t>(), blk_size); cache->setBlocked(Blocked_NoWBBuffers); cache->setMasterRequest(Request_WB, time); @@ -147,7 +148,7 @@ BlockingBuffer::handleResponse(PacketPtr &pkt, Tick time) PacketPtr target = ((MSHR*)(pkt->senderState))->getTarget(); ((MSHR*)(pkt->senderState))->popTarget(); if (pkt->isRead()) { - memcpy(target->getPtr<uint8_t>(), pkt->getPtr<uint8_t>(), target->getSize()); + std::memcpy(target->getPtr<uint8_t>(), pkt->getPtr<uint8_t>(), target->getSize()); } cache->respond(target, time); assert(!((MSHR*)(pkt->senderState))->hasTargets()); @@ -191,7 +192,7 @@ BlockingBuffer::doWriteback(Addr addr, PacketPtr pkt = new Packet(req, Packet::Writeback, -1); pkt->allocate(); if (data) { - memcpy(pkt->getPtr<uint8_t>(), data, size); + std::memcpy(pkt->getPtr<uint8_t>(), data, size); } if (compressed) { @@ -217,7 +218,7 @@ BlockingBuffer::doWriteback(PacketPtr &pkt) // Since allocate as buffer copies the request, // need to copy data here. - memcpy(wb.pkt->getPtr<uint8_t>(), pkt->getPtr<uint8_t>(), pkt->getSize()); + std::memcpy(wb.pkt->getPtr<uint8_t>(), pkt->getPtr<uint8_t>(), pkt->getSize()); cache->setBlocked(Blocked_NoWBBuffers); cache->setMasterRequest(Request_WB, curTick); diff --git a/src/mem/cache/miss/blocking_buffer.hh b/src/mem/cache/miss/blocking_buffer.hh index 205068a8c..24386a249 100644 --- a/src/mem/cache/miss/blocking_buffer.hh +++ b/src/mem/cache/miss/blocking_buffer.hh @@ -90,6 +90,7 @@ public: PacketPtr &target) { fatal("Unimplemented"); + M5_DUMMY_RETURN } /** @@ -201,6 +202,7 @@ public: MSHR* allocateTargetList(Addr addr) { fatal("Unimplemented"); + M5_DUMMY_RETURN } }; diff --git a/src/mem/cache/tags/iic.cc b/src/mem/cache/tags/iic.cc index 38f9662ea..e547e112e 100644 --- a/src/mem/cache/tags/iic.cc +++ b/src/mem/cache/tags/iic.cc @@ -527,7 +527,7 @@ IIC::hash(Addr addr) const { tag = extractTag(addr); mask = hashSets-1; /* assumes iic_hash_size is a power of 2 */ x = tag & mask; - y = (tag >> (int)(::log(hashSets)/::log(2))) & mask; + y = (tag >> (int)(::log((double)hashSets)/::log((double)2))) & mask; assert (x < hashSets && y < hashSets); return x ^ y; #endif diff --git a/src/mem/cache/tags/lru.hh b/src/mem/cache/tags/lru.hh index 4b94adca6..75272544c 100644 --- a/src/mem/cache/tags/lru.hh +++ b/src/mem/cache/tags/lru.hh @@ -36,6 +36,7 @@ #ifndef __LRU_HH__ #define __LRU_HH__ +#include <cstring> #include <list> #include "mem/cache/cache_blk.hh" // base class @@ -273,7 +274,7 @@ public: */ void readData(LRUBlk *blk, uint8_t *data) { - memcpy(data, blk->data, blk->size); + std::memcpy(data, blk->data, blk->size); } /** diff --git a/src/mem/cache/tags/split.hh b/src/mem/cache/tags/split.hh index e6ace0921..840b68940 100644 --- a/src/mem/cache/tags/split.hh +++ b/src/mem/cache/tags/split.hh @@ -36,6 +36,7 @@ #ifndef __SPLIT_HH__ #define __SPLIT_HH__ +#include <cstring> #include <list> #include "mem/cache/cache_blk.hh" // base class @@ -234,6 +235,7 @@ class Split : public BaseTags int extractSet(Addr addr) const { panic("should never call this!\n"); + M5_DUMMY_RETURN } /** @@ -281,7 +283,7 @@ class Split : public BaseTags */ void readData(SplitBlk *blk, uint8_t *data) { - memcpy(data, blk->data, blk->size); + std::memcpy(data, blk->data, blk->size); } /** diff --git a/src/mem/cache/tags/split_lifo.hh b/src/mem/cache/tags/split_lifo.hh index 9001cdb14..0f8adf18d 100644 --- a/src/mem/cache/tags/split_lifo.hh +++ b/src/mem/cache/tags/split_lifo.hh @@ -36,6 +36,7 @@ #ifndef __SPLIT_LIFO_HH__ #define __SPLIT_LIFO_HH__ +#include <cstring> #include <list> #include "mem/cache/cache_blk.hh" // base class @@ -296,7 +297,7 @@ public: */ void readData(SplitBlk *blk, uint8_t *data) { - memcpy(data, blk->data, blk->size); + std::memcpy(data, blk->data, blk->size); } /** diff --git a/src/mem/cache/tags/split_lru.hh b/src/mem/cache/tags/split_lru.hh index e17a478d3..eb65445ea 100644 --- a/src/mem/cache/tags/split_lru.hh +++ b/src/mem/cache/tags/split_lru.hh @@ -36,6 +36,7 @@ #ifndef __SPLIT_LRU_HH__ #define __SPLIT_LRU_HH__ +#include <cstring> #include <list> #include "mem/cache/cache_blk.hh" // base class @@ -279,7 +280,7 @@ public: */ void readData(SplitBlk *blk, uint8_t *data) { - memcpy(data, blk->data, blk->size); + std::memcpy(data, blk->data, blk->size); } /** diff --git a/src/mem/dram.cc b/src/mem/dram.cc index 873ca5b97..394c70db6 100644 --- a/src/mem/dram.cc +++ b/src/mem/dram.cc @@ -102,7 +102,7 @@ Kluwer Academic, pages 291-310, March, 2000. #include "mem/dram.hh" #include "sim/builder.hh" - +#include <stdlib.h> #include <string> extern int maxThreadsPerCPU; @@ -203,7 +203,7 @@ DRAMMemory::DRAMMemory(Params *p) last_bank = num_banks+1; last_row = num_rows; busy_until = new Tick[num_banks]; - memset(busy_until,0,sizeof(Tick)*num_banks); /* initiliaze */ + std::memset(busy_until,0,sizeof(Tick)*num_banks); /* initiliaze */ } diff --git a/src/mem/packet.cc b/src/mem/packet.cc index e2faf4527..44805236c 100644 --- a/src/mem/packet.cc +++ b/src/mem/packet.cc @@ -36,7 +36,7 @@ */ #include <iostream> - +#include <cstring> #include "base/misc.hh" #include "base/trace.hh" #include "mem/packet.hh" @@ -183,7 +183,7 @@ fixPacket(PacketPtr func, PacketPtr timing) if (func->isRead()) { if (funcStart >= timingStart && funcEnd <= timingEnd) { func->allocate(); - memcpy(func->getPtr<uint8_t>(), timing->getPtr<uint8_t>() + + std::memcpy(func->getPtr<uint8_t>(), timing->getPtr<uint8_t>() + funcStart - timingStart, func->getSize()); func->result = Packet::Success; func->flags |= SATISFIED; @@ -199,11 +199,11 @@ fixPacket(PacketPtr func, PacketPtr timing) } } else if (func->isWrite()) { if (funcStart >= timingStart) { - memcpy(timing->getPtr<uint8_t>() + (funcStart - timingStart), + std::memcpy(timing->getPtr<uint8_t>() + (funcStart - timingStart), func->getPtr<uint8_t>(), (std::min(funcEnd, timingEnd) - funcStart) + 1); } else { // timingStart > funcStart - memcpy(timing->getPtr<uint8_t>(), + std::memcpy(timing->getPtr<uint8_t>(), func->getPtr<uint8_t>() + (timingStart - funcStart), (std::min(funcEnd, timingEnd) - timingStart) + 1); } diff --git a/src/mem/physical.cc b/src/mem/physical.cc index 7d616a4e5..eccd42bec 100644 --- a/src/mem/physical.cc +++ b/src/mem/physical.cc @@ -59,7 +59,7 @@ PhysicalMemory::PhysicalMemory(Params *p) int map_flags = MAP_ANON | MAP_PRIVATE; pmemAddr = (uint8_t *)mmap(NULL, params()->addrRange.size(), PROT_READ | PROT_WRITE, - map_flags, -1, 0); + map_flags, -1, 0); if (pmemAddr == (void *)MAP_FAILED) { perror("mmap"); @@ -84,7 +84,7 @@ PhysicalMemory::init() PhysicalMemory::~PhysicalMemory() { if (pmemAddr) - munmap(pmemAddr, params()->addrRange.size()); + munmap((char*)pmemAddr, params()->addrRange.size()); //Remove memPorts? } @@ -430,7 +430,7 @@ PhysicalMemory::unserialize(Checkpoint *cp, const string §ion) // unmap file that was mmaped in the constructor // This is done here to make sure that gzip and open don't muck with our // nice large space of memory before we reallocate it - munmap(pmemAddr, params()->addrRange.size()); + munmap((char*)pmemAddr, params()->addrRange.size()); pmemAddr = (uint8_t *)mmap(NULL, params()->addrRange.size(), PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0); diff --git a/src/mem/port.cc b/src/mem/port.cc index bbc98c160..da719bbd9 100644 --- a/src/mem/port.cc +++ b/src/mem/port.cc @@ -32,6 +32,7 @@ * @file * Port object definitions. */ +#include <cstring> #include "base/chunk_generator.hh" #include "base/trace.hh" @@ -78,7 +79,7 @@ Port::memsetBlob(Addr addr, uint8_t val, int size) // quick and dirty... uint8_t *buf = new uint8_t[size]; - memset(buf, val, size); + std::memset(buf, val, size); blobHelper(addr, buf, size, Packet::WriteReq); delete [] buf; diff --git a/src/mem/port.hh b/src/mem/port.hh index 75afc04e6..5e55225bf 100644 --- a/src/mem/port.hh +++ b/src/mem/port.hh @@ -159,7 +159,7 @@ class Port this function to be called, a DMA interface doesn't really have a block size, so it is defaulted to a panic. */ - virtual int deviceBlockSize() { panic("??"); } + virtual int deviceBlockSize() { panic("??"); M5_DUMMY_RETURN } /** The peer port is requesting us to reply with a list of the ranges we are responsible for. @@ -261,8 +261,10 @@ class FunctionalPort : public Port {} protected: - virtual bool recvTiming(PacketPtr pkt) { panic("FuncPort is UniDir"); } - virtual Tick recvAtomic(PacketPtr pkt) { panic("FuncPort is UniDir"); } + virtual bool recvTiming(PacketPtr pkt) { panic("FuncPort is UniDir"); + M5_DUMMY_RETURN } + virtual Tick recvAtomic(PacketPtr pkt) { panic("FuncPort is UniDir"); + M5_DUMMY_RETURN } virtual void recvFunctional(PacketPtr pkt) { panic("FuncPort is UniDir"); } virtual void recvStatusChange(Status status) {} diff --git a/src/python/m5/objects/Tsunami.py b/src/python/m5/objects/Tsunami.py index 18a776a7f..85105ff20 100644 --- a/src/python/m5/objects/Tsunami.py +++ b/src/python/m5/objects/Tsunami.py @@ -15,6 +15,8 @@ class TsunamiIO(BasicPioDevice): type = 'TsunamiIO' time = Param.Time('01/01/2009', "System time to use ('Now' for actual time)") + year_is_bcd = Param.Bool(False, + "The RTC should interpret the year as a BCD value") tsunami = Param.Tsunami(Parent.any, "Tsunami") frequency = Param.Frequency('1024Hz', "frequency of interrupts") diff --git a/src/python/m5/params.py b/src/python/m5/params.py index d570804d8..f8a9f9ddd 100644 --- a/src/python/m5/params.py +++ b/src/python/m5/params.py @@ -518,49 +518,55 @@ class EthernetAddr(ParamValue): else: return self.value +time_formats = [ "%a %b %d %H:%M:%S %Z %Y", + "%a %b %d %H:%M:%S %Z %Y", + "%Y/%m/%d %H:%M:%S", + "%Y/%m/%d %H:%M", + "%Y/%m/%d", + "%m/%d/%Y %H:%M:%S", + "%m/%d/%Y %H:%M", + "%m/%d/%Y", + "%m/%d/%y %H:%M:%S", + "%m/%d/%y %H:%M", + "%m/%d/%y"] + + def parse_time(value): - strings = [ "%a %b %d %H:%M:%S %Z %Y", - "%a %b %d %H:%M:%S %Z %Y", - "%Y/%m/%d %H:%M:%S", - "%Y/%m/%d %H:%M", - "%Y/%m/%d", - "%m/%d/%Y %H:%M:%S", - "%m/%d/%Y %H:%M", - "%m/%d/%Y", - "%m/%d/%y %H:%M:%S", - "%m/%d/%y %H:%M", - "%m/%d/%y"] - - for string in strings: - try: - return time.strptime(value, string) - except ValueError: - pass + from time import gmtime, strptime, struct_time, time + from datetime import datetime, date + + if isinstance(value, struct_time): + return value + + if isinstance(value, (int, long)): + return gmtime(value) + + if isinstance(value, (datetime, date)): + return value.timetuple() + + if isinstance(value, str): + if value in ('Now', 'Today'): + return time.gmtime(time.time()) + + for format in time_formats: + try: + return strptime(value, format) + except ValueError: + pass raise ValueError, "Could not parse '%s' as a time" % value class Time(ParamValue): cxx_type = 'time_t' def __init__(self, value): - if isinstance(value, time.struct_time): - self.value = time.mktime(value) - elif isinstance(value, int): - self.value = value - elif isinstance(value, str): - if value in ('Now', 'Today'): - self.value = time.time() - else: - self.value = time.mktime(parse_time(value)) - elif isinstance(value, (datetime.datetime, datetime.date)): - self.value = time.mktime(value.timetuple()) - else: - raise ValueError, "Could not parse '%s' as a time" % value + self.value = parse_time(value) def __str__(self): - return str(int(self.value)) + tm = self.value + return ' '.join([ str(tm[i]) for i in xrange(8)]) def ini_str(self): - return str(int(self.value)) + return str(self) # Enumerated types are a little more complex. The user specifies the # type as Enum(foo) where foo is either a list or dictionary of diff --git a/src/sim/byteswap.hh b/src/sim/byteswap.hh index 9e7390977..cbc0b5088 100644 --- a/src/sim/byteswap.hh +++ b/src/sim/byteswap.hh @@ -47,7 +47,7 @@ // If one doesn't exist, we pretty much get what is listed below, so it all // works out #include <byteswap.h> -#elif defined (__sun__) +#elif defined (__sun) #include <sys/isa_defs.h> #else #include <machine/endian.h> diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.ini b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.ini index 7180478db..034ed9fa0 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.ini +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.ini @@ -7,9 +7,6 @@ max_tick=0 output_file=cout progress_interval=0 -[debug] -break_cycles= - [exetrace] intel_format=false legion_lockstep=false @@ -89,6 +86,7 @@ max_insts_all_threads=0 max_insts_any_thread=0 max_loads_all_threads=0 max_loads_any_thread=0 +phase=0 profile=0 progress_interval=0 simulate_stalls=false @@ -122,6 +120,7 @@ max_insts_all_threads=0 max_insts_any_thread=0 max_loads_all_threads=0 max_loads_any_thread=0 +phase=0 profile=0 progress_interval=0 simulate_stalls=false @@ -206,8 +205,13 @@ pio_latency=0 pio_size=8 platform=system.tsunami ret_bad_addr=true -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.membus.default [system.physmem] @@ -215,6 +219,7 @@ type=PhysicalMemory file= latency=1 range=0:134217727 +zero=false port=system.membus.port[1] [system.sim_console] @@ -347,8 +352,13 @@ pio_latency=2 pio_size=393216 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[9] [system.tsunami.fake_ata0] @@ -358,8 +368,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[20] [system.tsunami.fake_ata1] @@ -369,8 +384,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[21] [system.tsunami.fake_pnp_addr] @@ -380,8 +400,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[10] [system.tsunami.fake_pnp_read0] @@ -391,8 +416,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[12] [system.tsunami.fake_pnp_read1] @@ -402,8 +432,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[13] [system.tsunami.fake_pnp_read2] @@ -413,8 +448,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[14] [system.tsunami.fake_pnp_read3] @@ -424,8 +464,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[15] [system.tsunami.fake_pnp_read4] @@ -435,8 +480,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[16] [system.tsunami.fake_pnp_read5] @@ -446,8 +496,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[17] [system.tsunami.fake_pnp_read6] @@ -457,8 +512,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[18] [system.tsunami.fake_pnp_read7] @@ -468,8 +528,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[19] [system.tsunami.fake_pnp_write] @@ -479,19 +544,29 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[11] [system.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[8] [system.tsunami.fake_sm_chip] @@ -501,8 +576,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[3] [system.tsunami.fake_uart1] @@ -512,8 +592,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[4] [system.tsunami.fake_uart2] @@ -523,8 +608,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[5] [system.tsunami.fake_uart3] @@ -534,8 +624,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[6] [system.tsunami.fake_uart4] @@ -545,8 +640,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[7] [system.tsunami.fb] @@ -616,8 +716,9 @@ pio_addr=8804615847936 pio_latency=2 platform=system.tsunami system=system -time=1136073600 +time=2009 1 1 0 0 0 3 1 tsunami=system.tsunami +year_is_bcd=false pio=system.iobus.port[23] [system.tsunami.pchip] diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.out b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.out index ae75e1db0..35abc9f24 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.out +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.out @@ -10,6 +10,7 @@ type=PhysicalMemory file= range=[0,134217727] latency=1 +zero=false [system] type=LinuxAlphaSystem @@ -57,6 +58,7 @@ do_quiesce=true do_checkpoint_insts=true do_statistics_insts=true clock=1 +phase=0 defer_registration=false width=1 function_trace=false @@ -78,7 +80,12 @@ pio_addr=0 pio_latency=0 pio_size=8 ret_bad_addr=true -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -149,6 +156,7 @@ do_quiesce=true do_checkpoint_insts=true do_statistics_insts=true clock=1 +phase=0 defer_registration=false width=1 function_trace=false @@ -171,7 +179,12 @@ pio_addr=8804615848696 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -181,7 +194,12 @@ pio_addr=8804615848936 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -191,7 +209,12 @@ pio_addr=8804615848680 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -201,17 +224,27 @@ pio_addr=8804615848944 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system [system.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -230,7 +263,8 @@ pio_latency=2 frequency=1953125 platform=system.tsunami system=system -time=1136073600 +time=2009 1 1 0 0 0 3 1 +year_is_bcd=false tsunami=system.tsunami [] @@ -269,7 +303,12 @@ pio_addr=8804615848304 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -279,7 +318,12 @@ pio_addr=8804615848432 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -297,7 +341,12 @@ pio_addr=8804615848643 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -307,7 +356,12 @@ pio_addr=8804615848579 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -317,7 +371,12 @@ pio_addr=8804615848515 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -327,7 +386,12 @@ pio_addr=8804615848451 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -337,7 +401,12 @@ pio_addr=8804615848899 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -347,7 +416,12 @@ pio_addr=8804615848835 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -357,7 +431,12 @@ pio_addr=8804615848771 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -367,7 +446,12 @@ pio_addr=8804615848707 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -377,7 +461,12 @@ pio_addr=8804615850617 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -464,7 +553,12 @@ pio_addr=8796093677568 pio_latency=2 pio_size=393216 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -482,7 +576,12 @@ pio_addr=8804615848816 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -492,7 +591,12 @@ pio_addr=8804615848569 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -595,9 +699,6 @@ intel_format=false legion_lockstep=false trace_system=client -[debug] -break_cycles= - [statsreset] reset_cycle=0 diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/m5stats.txt b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/m5stats.txt index 2fcb2a638..4dbe8c13c 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/m5stats.txt +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/m5stats.txt @@ -1,13 +1,13 @@ ---------- Begin Simulation Statistics ---------- -host_inst_rate 1285205 # Simulator instruction rate (inst/s) -host_mem_usage 200148 # Number of bytes of host memory used -host_seconds 50.51 # Real time elapsed on the host -host_tick_rate 73618621 # Simulator tick rate (ticks/s) +host_inst_rate 1026206 # Simulator instruction rate (inst/s) +host_mem_usage 240860 # Number of bytes of host memory used +host_seconds 63.27 # Real time elapsed on the host +host_tick_rate 58764450 # Simulator tick rate (ticks/s) sim_freq 2000000000 # Frequency of simulated ticks -sim_insts 64909600 # Number of instructions simulated -sim_seconds 1.859078 # Number of seconds simulated -sim_ticks 3718155709 # Number of ticks simulated +sim_insts 64932819 # Number of instructions simulated +sim_seconds 1.859157 # Number of seconds simulated +sim_ticks 3718314928 # Number of ticks simulated system.cpu0.dtb.accesses 544556 # DTB accesses system.cpu0.dtb.acv 335 # DTB access violations system.cpu0.dtb.hits 14841931 # DTB hits @@ -20,7 +20,7 @@ system.cpu0.dtb.write_accesses 167026 # DT system.cpu0.dtb.write_acv 125 # DTB write access violations system.cpu0.dtb.write_hits 5871355 # DTB write hits system.cpu0.dtb.write_misses 775 # DTB write misses -system.cpu0.idle_fraction 0.984943 # Percentage of idle cycles +system.cpu0.idle_fraction 0.984944 # Percentage of idle cycles system.cpu0.itb.accesses 3586919 # ITB accesses system.cpu0.itb.acv 184 # ITB acv system.cpu0.itb.hits 3583450 # ITB hits @@ -58,8 +58,8 @@ system.cpu0.kern.ipl_good_21 245 0.17% 49.41% # nu system.cpu0.kern.ipl_good_22 1896 1.35% 50.76% # number of times we switched to this ipl from a different ipl system.cpu0.kern.ipl_good_30 8 0.01% 50.77% # number of times we switched to this ipl from a different ipl system.cpu0.kern.ipl_good_31 69366 49.23% 100.00% # number of times we switched to this ipl from a different ipl -system.cpu0.kern.ipl_ticks 3718155294 # number of cycles we spent at this ipl -system.cpu0.kern.ipl_ticks_0 3683661066 99.07% 99.07% # number of cycles we spent at this ipl +system.cpu0.kern.ipl_ticks 3718314513 # number of cycles we spent at this ipl +system.cpu0.kern.ipl_ticks_0 3683820285 99.07% 99.07% # number of cycles we spent at this ipl system.cpu0.kern.ipl_ticks_21 40474 0.00% 99.07% # number of cycles we spent at this ipl system.cpu0.kern.ipl_ticks_22 163056 0.00% 99.08% # number of cycles we spent at this ipl system.cpu0.kern.ipl_ticks_30 2026 0.00% 99.08% # number of cycles we spent at this ipl @@ -80,7 +80,7 @@ system.cpu0.kern.mode_switch_good 0.286108 # fr system.cpu0.kern.mode_switch_good_kernel 0.166877 # fraction of useful protection mode switches system.cpu0.kern.mode_switch_good_user 1 # fraction of useful protection mode switches system.cpu0.kern.mode_switch_good_idle <err: div-0> # fraction of useful protection mode switches -system.cpu0.kern.mode_ticks_kernel 3716512331 99.96% 99.96% # number of ticks spent at the given mode +system.cpu0.kern.mode_ticks_kernel 3716671550 99.96% 99.96% # number of ticks spent at the given mode system.cpu0.kern.mode_ticks_user 1642961 0.04% 100.00% # number of ticks spent at the given mode system.cpu0.kern.mode_ticks_idle 0 0.00% 100.00% # number of ticks spent at the given mode system.cpu0.kern.swap_context 3792 # number of times the context was actually changed @@ -113,28 +113,28 @@ system.cpu0.kern.syscall_98 2 1.01% 97.49% # nu system.cpu0.kern.syscall_132 1 0.50% 97.99% # number of syscalls executed system.cpu0.kern.syscall_144 2 1.01% 98.99% # number of syscalls executed system.cpu0.kern.syscall_147 2 1.01% 100.00% # number of syscalls executed -system.cpu0.not_idle_fraction 0.015057 # Percentage of non-idle cycles +system.cpu0.not_idle_fraction 0.015056 # Percentage of non-idle cycles system.cpu0.numCycles 55984201 # number of cpu cycles simulated system.cpu0.num_insts 55980548 # Number of instructions executed system.cpu0.num_refs 15081320 # Number of memory references system.cpu1.dtb.accesses 761000 # DTB accesses system.cpu1.dtb.acv 32 # DTB access violations -system.cpu1.dtb.hits 2653187 # DTB hits +system.cpu1.dtb.hits 2658022 # DTB hits system.cpu1.dtb.misses 4173 # DTB misses system.cpu1.dtb.read_accesses 523552 # DTB read accesses system.cpu1.dtb.read_acv 0 # DTB read access violations -system.cpu1.dtb.read_hits 1675663 # DTB read hits +system.cpu1.dtb.read_hits 1679180 # DTB read hits system.cpu1.dtb.read_misses 3798 # DTB read misses system.cpu1.dtb.write_accesses 237448 # DTB write accesses system.cpu1.dtb.write_acv 32 # DTB write access violations -system.cpu1.dtb.write_hits 977524 # DTB write hits +system.cpu1.dtb.write_hits 978842 # DTB write hits system.cpu1.dtb.write_misses 375 # DTB write misses -system.cpu1.idle_fraction 0.997598 # Percentage of idle cycles -system.cpu1.itb.accesses 2420372 # ITB accesses +system.cpu1.idle_fraction 0.997592 # Percentage of idle cycles +system.cpu1.itb.accesses 2420426 # ITB accesses system.cpu1.itb.acv 0 # ITB acv -system.cpu1.itb.hits 2418785 # ITB hits +system.cpu1.itb.hits 2418839 # ITB hits system.cpu1.itb.misses 1587 # ITB misses -system.cpu1.kern.callpal 34405 # number of callpals executed +system.cpu1.kern.callpal 34411 # number of callpals executed system.cpu1.kern.callpal_cserve 1 0.00% 0.00% # number of callpals executed system.cpu1.kern.callpal_wripir 8 0.02% 0.03% # number of callpals executed system.cpu1.kern.callpal_wrmces 1 0.00% 0.03% # number of callpals executed @@ -142,7 +142,7 @@ system.cpu1.kern.callpal_wrfen 1 0.00% 0.03% # nu system.cpu1.kern.callpal_swpctx 468 1.36% 1.39% # number of callpals executed system.cpu1.kern.callpal_tbi 5 0.01% 1.41% # number of callpals executed system.cpu1.kern.callpal_wrent 7 0.02% 1.43% # number of callpals executed -system.cpu1.kern.callpal_swpipl 28030 81.47% 82.90% # number of callpals executed +system.cpu1.kern.callpal_swpipl 28036 81.47% 82.90% # number of callpals executed system.cpu1.kern.callpal_rdps 3042 8.84% 91.74% # number of callpals executed system.cpu1.kern.callpal_wrkgp 1 0.00% 91.74% # number of callpals executed system.cpu1.kern.callpal_wrusp 5 0.01% 91.76% # number of callpals executed @@ -152,28 +152,28 @@ system.cpu1.kern.callpal_callsys 187 0.54% 99.83% # nu system.cpu1.kern.callpal_imb 59 0.17% 100.00% # number of callpals executed system.cpu1.kern.callpal_rdunique 1 0.00% 100.00% # number of callpals executed system.cpu1.kern.inst.arm 0 # number of arm instructions executed -system.cpu1.kern.inst.hwrei 42209 # number of hwrei instructions executed -system.cpu1.kern.inst.quiesce 2146 # number of quiesce instructions executed -system.cpu1.kern.ipl_count 32627 # number of times we switched to this ipl -system.cpu1.kern.ipl_count_0 11165 34.22% 34.22% # number of times we switched to this ipl +system.cpu1.kern.inst.hwrei 42215 # number of hwrei instructions executed +system.cpu1.kern.inst.quiesce 2214 # number of quiesce instructions executed +system.cpu1.kern.ipl_count 32633 # number of times we switched to this ipl +system.cpu1.kern.ipl_count_0 11168 34.22% 34.22% # number of times we switched to this ipl system.cpu1.kern.ipl_count_22 1895 5.81% 40.03% # number of times we switched to this ipl system.cpu1.kern.ipl_count_30 115 0.35% 40.38% # number of times we switched to this ipl -system.cpu1.kern.ipl_count_31 19452 59.62% 100.00% # number of times we switched to this ipl -system.cpu1.kern.ipl_good 24195 # number of times we switched to this ipl from a different ipl -system.cpu1.kern.ipl_good_0 11150 46.08% 46.08% # number of times we switched to this ipl from a different ipl +system.cpu1.kern.ipl_count_31 19455 59.62% 100.00% # number of times we switched to this ipl +system.cpu1.kern.ipl_good 24201 # number of times we switched to this ipl from a different ipl +system.cpu1.kern.ipl_good_0 11153 46.08% 46.08% # number of times we switched to this ipl from a different ipl system.cpu1.kern.ipl_good_22 1895 7.83% 53.92% # number of times we switched to this ipl from a different ipl system.cpu1.kern.ipl_good_30 115 0.48% 54.39% # number of times we switched to this ipl from a different ipl -system.cpu1.kern.ipl_good_31 11035 45.61% 100.00% # number of times we switched to this ipl from a different ipl -system.cpu1.kern.ipl_ticks 3717733449 # number of cycles we spent at this ipl -system.cpu1.kern.ipl_ticks_0 3695802393 99.41% 99.41% # number of cycles we spent at this ipl +system.cpu1.kern.ipl_good_31 11038 45.61% 100.00% # number of times we switched to this ipl from a different ipl +system.cpu1.kern.ipl_ticks 3717892668 # number of cycles we spent at this ipl +system.cpu1.kern.ipl_ticks_0 3695802544 99.41% 99.41% # number of cycles we spent at this ipl system.cpu1.kern.ipl_ticks_22 162970 0.00% 99.41% # number of cycles we spent at this ipl -system.cpu1.kern.ipl_ticks_30 29122 0.00% 99.42% # number of cycles we spent at this ipl -system.cpu1.kern.ipl_ticks_31 21738964 0.58% 100.00% # number of cycles we spent at this ipl -system.cpu1.kern.ipl_used 0.741564 # fraction of swpipl calls that actually changed the ipl +system.cpu1.kern.ipl_ticks_30 29122 0.00% 99.41% # number of cycles we spent at this ipl +system.cpu1.kern.ipl_ticks_31 21898032 0.59% 100.00% # number of cycles we spent at this ipl +system.cpu1.kern.ipl_used 0.741611 # fraction of swpipl calls that actually changed the ipl system.cpu1.kern.ipl_used_0 0.998657 # fraction of swpipl calls that actually changed the ipl system.cpu1.kern.ipl_used_22 1 # fraction of swpipl calls that actually changed the ipl system.cpu1.kern.ipl_used_30 1 # fraction of swpipl calls that actually changed the ipl -system.cpu1.kern.ipl_used_31 0.567294 # fraction of swpipl calls that actually changed the ipl +system.cpu1.kern.ipl_used_31 0.567361 # fraction of swpipl calls that actually changed the ipl system.cpu1.kern.mode_good_kernel 602 system.cpu1.kern.mode_good_user 563 system.cpu1.kern.mode_good_idle 39 @@ -184,7 +184,7 @@ system.cpu1.kern.mode_switch_good 0.332689 # fr system.cpu1.kern.mode_switch_good_kernel 0.595450 # fraction of useful protection mode switches system.cpu1.kern.mode_switch_good_user 1 # fraction of useful protection mode switches system.cpu1.kern.mode_switch_good_idle 0.019071 # fraction of useful protection mode switches -system.cpu1.kern.mode_ticks_kernel 4713507 0.13% 0.13% # number of ticks spent at the given mode +system.cpu1.kern.mode_ticks_kernel 4872726 0.13% 0.13% # number of ticks spent at the given mode system.cpu1.kern.mode_ticks_user 1950903 0.05% 0.18% # number of ticks spent at the given mode system.cpu1.kern.mode_ticks_idle 3710606044 99.82% 100.00% # number of ticks spent at the given mode system.cpu1.kern.swap_context 469 # number of times the context was actually changed @@ -205,10 +205,10 @@ system.cpu1.kern.syscall_71 34 26.15% 87.69% # nu system.cpu1.kern.syscall_74 11 8.46% 96.15% # number of syscalls executed system.cpu1.kern.syscall_92 2 1.54% 97.69% # number of syscalls executed system.cpu1.kern.syscall_132 3 2.31% 100.00% # number of syscalls executed -system.cpu1.not_idle_fraction 0.002402 # Percentage of non-idle cycles -system.cpu1.numCycles 8930639 # number of cpu cycles simulated -system.cpu1.num_insts 8929052 # Number of instructions executed -system.cpu1.num_refs 2665347 # Number of memory references +system.cpu1.not_idle_fraction 0.002408 # Percentage of non-idle cycles +system.cpu1.numCycles 8953858 # number of cpu cycles simulated +system.cpu1.num_insts 8952271 # Number of instructions executed +system.cpu1.num_refs 2670182 # Number of memory references system.disk0.dma_read_bytes 1024 # Number of bytes transfered via DMA reads (not PRD). system.disk0.dma_read_full_pages 0 # Number of full page size DMA reads (not PRD). system.disk0.dma_read_txs 1 # Number of DMA read transactions (not PRD). @@ -221,7 +221,7 @@ system.disk2.dma_read_txs 0 # Nu system.disk2.dma_write_bytes 8192 # Number of bytes transfered via DMA writes. system.disk2.dma_write_full_pages 1 # Number of full page size DMA writes. system.disk2.dma_write_txs 1 # Number of DMA write transactions. -system.tsunami.ethernet.coalescedRxDesc no value # average number of RxDesc's coalesced into each post +system.tsunami.ethernet.coalescedRxDesc <err: div-0> # average number of RxDesc's coalesced into each post system.tsunami.ethernet.coalescedRxIdle <err: div-0> # average number of RxIdle's coalesced into each post system.tsunami.ethernet.coalescedRxOk <err: div-0> # average number of RxOk's coalesced into each post system.tsunami.ethernet.coalescedRxOrn <err: div-0> # average number of RxOrn's coalesced into each post diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stderr b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stderr index 9bd19d291..9a6301977 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stderr +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stderr @@ -1,8 +1,8 @@ Warning: rounding error > tolerance 0.002000 rounded to 0 - 0: system.tsunami.io.rtc: Real-time clock set to Sun Jan 1 00:00:00 2006 -Listening for console connection on port 3457 -0: system.remote_gdb.listener: listening for remote gdb #0 on port 7001 -0: system.remote_gdb.listener: listening for remote gdb #1 on port 7002 + 0: system.tsunami.io.rtc: Real-time clock set to Thu Jan 1 00:00:00 2009 +Listening for console connection on port 3456 +0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 +0: system.remote_gdb.listener: listening for remote gdb #1 on port 7001 warn: Entering event queue @ 0. Starting simulation... warn: 195723: Trying to launch CPU number 1! diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stdout b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stdout index 8bfefbb7c..1cecd3a25 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stdout +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stdout @@ -5,8 +5,8 @@ The Regents of The University of Michigan All Rights Reserved -M5 compiled Nov 5 2006 19:41:29 -M5 started Sun Nov 5 20:03:49 2006 -M5 executing on zizzer.eecs.umich.edu -command line: build/ALPHA_FS/m5.opt -d build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual tests/run.py quick/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual -Exiting @ tick 3718155709 because m5_exit instruction encountered +M5 compiled Jan 25 2007 15:05:30 +M5 started Thu Jan 25 15:06:16 2007 +M5 executing on zeep +command line: /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/m5.opt -d /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual tests/run.py quick/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual +Exiting @ tick 3718314928 because m5_exit instruction encountered diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.ini b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.ini index f69482dc0..fbc68db88 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.ini +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.ini @@ -7,9 +7,6 @@ max_tick=0 output_file=cout progress_interval=0 -[debug] -break_cycles= - [exetrace] intel_format=false legion_lockstep=false @@ -89,6 +86,7 @@ max_insts_all_threads=0 max_insts_any_thread=0 max_loads_all_threads=0 max_loads_any_thread=0 +phase=0 profile=0 progress_interval=0 simulate_stalls=false @@ -173,8 +171,13 @@ pio_latency=0 pio_size=8 platform=system.tsunami ret_bad_addr=true -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.membus.default [system.physmem] @@ -182,6 +185,7 @@ type=PhysicalMemory file= latency=1 range=0:134217727 +zero=false port=system.membus.port[1] [system.sim_console] @@ -314,8 +318,13 @@ pio_latency=2 pio_size=393216 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[9] [system.tsunami.fake_ata0] @@ -325,8 +334,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[20] [system.tsunami.fake_ata1] @@ -336,8 +350,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[21] [system.tsunami.fake_pnp_addr] @@ -347,8 +366,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[10] [system.tsunami.fake_pnp_read0] @@ -358,8 +382,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[12] [system.tsunami.fake_pnp_read1] @@ -369,8 +398,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[13] [system.tsunami.fake_pnp_read2] @@ -380,8 +414,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[14] [system.tsunami.fake_pnp_read3] @@ -391,8 +430,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[15] [system.tsunami.fake_pnp_read4] @@ -402,8 +446,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[16] [system.tsunami.fake_pnp_read5] @@ -413,8 +462,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[17] [system.tsunami.fake_pnp_read6] @@ -424,8 +478,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[18] [system.tsunami.fake_pnp_read7] @@ -435,8 +494,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[19] [system.tsunami.fake_pnp_write] @@ -446,19 +510,29 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[11] [system.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[8] [system.tsunami.fake_sm_chip] @@ -468,8 +542,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[3] [system.tsunami.fake_uart1] @@ -479,8 +558,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[4] [system.tsunami.fake_uart2] @@ -490,8 +574,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[5] [system.tsunami.fake_uart3] @@ -501,8 +590,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[6] [system.tsunami.fake_uart4] @@ -512,8 +606,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[7] [system.tsunami.fb] @@ -583,8 +682,9 @@ pio_addr=8804615847936 pio_latency=2 platform=system.tsunami system=system -time=1136073600 +time=2009 1 1 0 0 0 3 1 tsunami=system.tsunami +year_is_bcd=false pio=system.iobus.port[23] [system.tsunami.pchip] diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.out b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.out index 1254e9fec..673f2c89c 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.out +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.out @@ -10,6 +10,7 @@ type=PhysicalMemory file= range=[0,134217727] latency=1 +zero=false [system] type=LinuxAlphaSystem @@ -57,6 +58,7 @@ do_quiesce=true do_checkpoint_insts=true do_statistics_insts=true clock=1 +phase=0 defer_registration=false width=1 function_trace=false @@ -78,7 +80,12 @@ pio_addr=0 pio_latency=0 pio_size=8 ret_bad_addr=true -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -141,7 +148,12 @@ pio_addr=8804615848696 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -151,7 +163,12 @@ pio_addr=8804615848936 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -161,7 +178,12 @@ pio_addr=8804615848680 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -171,17 +193,27 @@ pio_addr=8804615848944 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system [system.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -200,7 +232,8 @@ pio_latency=2 frequency=1953125 platform=system.tsunami system=system -time=1136073600 +time=2009 1 1 0 0 0 3 1 +year_is_bcd=false tsunami=system.tsunami [] @@ -239,7 +272,12 @@ pio_addr=8804615848304 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -249,7 +287,12 @@ pio_addr=8804615848432 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -267,7 +310,12 @@ pio_addr=8804615848643 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -277,7 +325,12 @@ pio_addr=8804615848579 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -287,7 +340,12 @@ pio_addr=8804615848515 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -297,7 +355,12 @@ pio_addr=8804615848451 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -307,7 +370,12 @@ pio_addr=8804615848899 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -317,7 +385,12 @@ pio_addr=8804615848835 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -327,7 +400,12 @@ pio_addr=8804615848771 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -337,7 +415,12 @@ pio_addr=8804615848707 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -347,7 +430,12 @@ pio_addr=8804615850617 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -434,7 +522,12 @@ pio_addr=8796093677568 pio_latency=2 pio_size=393216 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -452,7 +545,12 @@ pio_addr=8804615848816 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -462,7 +560,12 @@ pio_addr=8804615848569 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -565,9 +668,6 @@ intel_format=false legion_lockstep=false trace_system=client -[debug] -break_cycles= - [statsreset] reset_cycle=0 diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/m5stats.txt b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/m5stats.txt index 0c0307c15..a10779a99 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/m5stats.txt +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/m5stats.txt @@ -1,31 +1,31 @@ ---------- Begin Simulation Statistics ---------- -host_inst_rate 1254169 # Simulator instruction rate (inst/s) -host_mem_usage 199988 # Number of bytes of host memory used -host_seconds 49.27 # Real time elapsed on the host -host_tick_rate 73765213 # Simulator tick rate (ticks/s) +host_inst_rate 1452138 # Simulator instruction rate (inst/s) +host_mem_usage 239532 # Number of bytes of host memory used +host_seconds 42.57 # Real time elapsed on the host +host_tick_rate 85380734 # Simulator tick rate (ticks/s) sim_freq 2000000000 # Frequency of simulated ticks -sim_insts 61788439 # Number of instructions simulated -sim_seconds 1.817090 # Number of seconds simulated -sim_ticks 3634179176 # Number of ticks simulated +sim_insts 61811715 # Number of instructions simulated +sim_seconds 1.817169 # Number of seconds simulated +sim_ticks 3634338452 # Number of ticks simulated system.cpu.dtb.accesses 1304494 # DTB accesses system.cpu.dtb.acv 367 # DTB access violations -system.cpu.dtb.hits 16552094 # DTB hits +system.cpu.dtb.hits 16556949 # DTB hits system.cpu.dtb.misses 11425 # DTB misses system.cpu.dtb.read_accesses 900425 # DTB read accesses system.cpu.dtb.read_acv 210 # DTB read access violations -system.cpu.dtb.read_hits 10038384 # DTB read hits +system.cpu.dtb.read_hits 10041919 # DTB read hits system.cpu.dtb.read_misses 10280 # DTB read misses system.cpu.dtb.write_accesses 404069 # DTB write accesses system.cpu.dtb.write_acv 157 # DTB write access violations -system.cpu.dtb.write_hits 6513710 # DTB write hits +system.cpu.dtb.write_hits 6515030 # DTB write hits system.cpu.dtb.write_misses 1145 # DTB write misses -system.cpu.idle_fraction 0.982997 # Percentage of idle cycles -system.cpu.itb.accesses 5655311 # ITB accesses +system.cpu.idle_fraction 0.982991 # Percentage of idle cycles +system.cpu.itb.accesses 5655354 # ITB accesses system.cpu.itb.acv 184 # ITB acv -system.cpu.itb.hits 5650321 # ITB hits +system.cpu.itb.hits 5650364 # ITB hits system.cpu.itb.misses 4990 # ITB misses -system.cpu.kern.callpal 193842 # number of callpals executed +system.cpu.kern.callpal 193847 # number of callpals executed system.cpu.kern.callpal_cserve 1 0.00% 0.00% # number of callpals executed system.cpu.kern.callpal_wrmces 1 0.00% 0.00% # number of callpals executed system.cpu.kern.callpal_wrfen 1 0.00% 0.00% # number of callpals executed @@ -33,7 +33,7 @@ system.cpu.kern.callpal_wrvptptr 1 0.00% 0.00% # nu system.cpu.kern.callpal_swpctx 4203 2.17% 2.17% # number of callpals executed system.cpu.kern.callpal_tbi 54 0.03% 2.20% # number of callpals executed system.cpu.kern.callpal_wrent 7 0.00% 2.20% # number of callpals executed -system.cpu.kern.callpal_swpipl 176751 91.18% 93.38% # number of callpals executed +system.cpu.kern.callpal_swpipl 176756 91.18% 93.38% # number of callpals executed system.cpu.kern.callpal_rdps 6881 3.55% 96.93% # number of callpals executed system.cpu.kern.callpal_wrkgp 1 0.00% 96.94% # number of callpals executed system.cpu.kern.callpal_wrusp 7 0.00% 96.94% # number of callpals executed @@ -43,41 +43,41 @@ system.cpu.kern.callpal_rti 5211 2.69% 99.63% # nu system.cpu.kern.callpal_callsys 531 0.27% 99.91% # number of callpals executed system.cpu.kern.callpal_imb 181 0.09% 100.00% # number of callpals executed system.cpu.kern.inst.arm 0 # number of arm instructions executed -system.cpu.kern.inst.hwrei 212908 # number of hwrei instructions executed -system.cpu.kern.inst.quiesce 6207 # number of quiesce instructions executed -system.cpu.kern.ipl_count 184061 # number of times we switched to this ipl -system.cpu.kern.ipl_count_0 75348 40.94% 40.94% # number of times we switched to this ipl +system.cpu.kern.inst.hwrei 212913 # number of hwrei instructions executed +system.cpu.kern.inst.quiesce 6275 # number of quiesce instructions executed +system.cpu.kern.ipl_count 184066 # number of times we switched to this ipl +system.cpu.kern.ipl_count_0 75351 40.94% 40.94% # number of times we switched to this ipl system.cpu.kern.ipl_count_21 245 0.13% 41.07% # number of times we switched to this ipl system.cpu.kern.ipl_count_22 1853 1.01% 42.08% # number of times we switched to this ipl -system.cpu.kern.ipl_count_31 106615 57.92% 100.00% # number of times we switched to this ipl -system.cpu.kern.ipl_good 150060 # number of times we switched to this ipl from a different ipl -system.cpu.kern.ipl_good_0 73981 49.30% 49.30% # number of times we switched to this ipl from a different ipl +system.cpu.kern.ipl_count_31 106617 57.92% 100.00% # number of times we switched to this ipl +system.cpu.kern.ipl_good 150066 # number of times we switched to this ipl from a different ipl +system.cpu.kern.ipl_good_0 73984 49.30% 49.30% # number of times we switched to this ipl from a different ipl system.cpu.kern.ipl_good_21 245 0.16% 49.46% # number of times we switched to this ipl from a different ipl system.cpu.kern.ipl_good_22 1853 1.23% 50.70% # number of times we switched to this ipl from a different ipl -system.cpu.kern.ipl_good_31 73981 49.30% 100.00% # number of times we switched to this ipl from a different ipl -system.cpu.kern.ipl_ticks 3634178761 # number of cycles we spent at this ipl -system.cpu.kern.ipl_ticks_0 3599646819 99.05% 99.05% # number of cycles we spent at this ipl +system.cpu.kern.ipl_good_31 73984 49.30% 100.00% # number of times we switched to this ipl from a different ipl +system.cpu.kern.ipl_ticks 3634338037 # number of cycles we spent at this ipl +system.cpu.kern.ipl_ticks_0 3599646965 99.05% 99.05% # number of cycles we spent at this ipl system.cpu.kern.ipl_ticks_21 40474 0.00% 99.05% # number of cycles we spent at this ipl -system.cpu.kern.ipl_ticks_22 159358 0.00% 99.06% # number of cycles we spent at this ipl -system.cpu.kern.ipl_ticks_31 34332110 0.94% 100.00% # number of cycles we spent at this ipl -system.cpu.kern.ipl_used 0.815273 # fraction of swpipl calls that actually changed the ipl +system.cpu.kern.ipl_ticks_22 159358 0.00% 99.05% # number of cycles we spent at this ipl +system.cpu.kern.ipl_ticks_31 34491240 0.95% 100.00% # number of cycles we spent at this ipl +system.cpu.kern.ipl_used 0.815284 # fraction of swpipl calls that actually changed the ipl system.cpu.kern.ipl_used_0 0.981858 # fraction of swpipl calls that actually changed the ipl system.cpu.kern.ipl_used_21 1 # fraction of swpipl calls that actually changed the ipl system.cpu.kern.ipl_used_22 1 # fraction of swpipl calls that actually changed the ipl -system.cpu.kern.ipl_used_31 0.693908 # fraction of swpipl calls that actually changed the ipl -system.cpu.kern.mode_good_kernel 1938 -system.cpu.kern.mode_good_user 1758 +system.cpu.kern.ipl_used_31 0.693923 # fraction of swpipl calls that actually changed the ipl +system.cpu.kern.mode_good_kernel 1937 +system.cpu.kern.mode_good_user 1757 system.cpu.kern.mode_good_idle 180 system.cpu.kern.mode_switch_kernel 5978 # number of protection mode switches -system.cpu.kern.mode_switch_user 1758 # number of protection mode switches +system.cpu.kern.mode_switch_user 1757 # number of protection mode switches system.cpu.kern.mode_switch_idle 2102 # number of protection mode switches -system.cpu.kern.mode_switch_good 0.393983 # fraction of useful protection mode switches -system.cpu.kern.mode_switch_good_kernel 0.324189 # fraction of useful protection mode switches +system.cpu.kern.mode_switch_good 0.393819 # fraction of useful protection mode switches +system.cpu.kern.mode_switch_good_kernel 0.324021 # fraction of useful protection mode switches system.cpu.kern.mode_switch_good_user 1 # fraction of useful protection mode switches system.cpu.kern.mode_switch_good_idle 0.085633 # fraction of useful protection mode switches -system.cpu.kern.mode_ticks_kernel 54682435 1.50% 1.50% # number of ticks spent at the given mode -system.cpu.kern.mode_ticks_user 3591244 0.10% 1.60% # number of ticks spent at the given mode -system.cpu.kern.mode_ticks_idle 3575905080 98.40% 100.00% # number of ticks spent at the given mode +system.cpu.kern.mode_ticks_kernel 54841721 1.51% 1.51% # number of ticks spent at the given mode +system.cpu.kern.mode_ticks_user 3591234 0.10% 1.61% # number of ticks spent at the given mode +system.cpu.kern.mode_ticks_idle 3575905080 98.39% 100.00% # number of ticks spent at the given mode system.cpu.kern.swap_context 4204 # number of times the context was actually changed system.cpu.kern.syscall 329 # number of syscalls executed system.cpu.kern.syscall_2 8 2.43% 2.43% # number of syscalls executed @@ -110,10 +110,10 @@ system.cpu.kern.syscall_98 2 0.61% 97.57% # nu system.cpu.kern.syscall_132 4 1.22% 98.78% # number of syscalls executed system.cpu.kern.syscall_144 2 0.61% 99.39% # number of syscalls executed system.cpu.kern.syscall_147 2 0.61% 100.00% # number of syscalls executed -system.cpu.not_idle_fraction 0.017003 # Percentage of non-idle cycles -system.cpu.numCycles 61793613 # number of cpu cycles simulated -system.cpu.num_insts 61788439 # Number of instructions executed -system.cpu.num_refs 16800623 # Number of memory references +system.cpu.not_idle_fraction 0.017009 # Percentage of non-idle cycles +system.cpu.numCycles 61816889 # number of cpu cycles simulated +system.cpu.num_insts 61811715 # Number of instructions executed +system.cpu.num_refs 16805478 # Number of memory references system.disk0.dma_read_bytes 1024 # Number of bytes transfered via DMA reads (not PRD). system.disk0.dma_read_full_pages 0 # Number of full page size DMA reads (not PRD). system.disk0.dma_read_txs 1 # Number of DMA read transactions (not PRD). @@ -131,7 +131,7 @@ system.tsunami.ethernet.coalescedRxIdle <err: div-0> # av system.tsunami.ethernet.coalescedRxOk <err: div-0> # average number of RxOk's coalesced into each post system.tsunami.ethernet.coalescedRxOrn <err: div-0> # average number of RxOrn's coalesced into each post system.tsunami.ethernet.coalescedSwi <err: div-0> # average number of Swi's coalesced into each post -system.tsunami.ethernet.coalescedTotal <err: div-0> # average number of interrupts coalesced into each post +system.tsunami.ethernet.coalescedTotal no value # average number of interrupts coalesced into each post system.tsunami.ethernet.coalescedTxDesc <err: div-0> # average number of TxDesc's coalesced into each post system.tsunami.ethernet.coalescedTxIdle <err: div-0> # average number of TxIdle's coalesced into each post system.tsunami.ethernet.coalescedTxOk <err: div-0> # average number of TxOk's coalesced into each post diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stderr b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stderr index a8bcb04d9..69304a604 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stderr +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stderr @@ -1,6 +1,6 @@ Warning: rounding error > tolerance 0.002000 rounded to 0 - 0: system.tsunami.io.rtc: Real-time clock set to Sun Jan 1 00:00:00 2006 + 0: system.tsunami.io.rtc: Real-time clock set to Thu Jan 1 00:00:00 2009 Listening for console connection on port 3456 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 warn: Entering event queue @ 0. Starting simulation... diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stdout b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stdout index 3929194fc..631453025 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stdout +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stdout @@ -5,8 +5,8 @@ The Regents of The University of Michigan All Rights Reserved -M5 compiled Nov 5 2006 19:41:29 -M5 started Sun Nov 5 20:03:49 2006 -M5 executing on zizzer.eecs.umich.edu -command line: build/ALPHA_FS/m5.opt -d build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic tests/run.py quick/10.linux-boot/alpha/linux/tsunami-simple-atomic -Exiting @ tick 3634179176 because m5_exit instruction encountered +M5 compiled Jan 25 2007 15:05:30 +M5 started Thu Jan 25 15:05:33 2007 +M5 executing on zeep +command line: /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/m5.opt -d /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic tests/run.py quick/10.linux-boot/alpha/linux/tsunami-simple-atomic +Exiting @ tick 3634338452 because m5_exit instruction encountered diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.ini b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.ini index 5c151b2f9..5a824717f 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.ini +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.ini @@ -7,9 +7,6 @@ max_tick=0 output_file=cout progress_interval=0 -[debug] -break_cycles= - [exetrace] intel_format=false legion_lockstep=false @@ -89,6 +86,7 @@ max_insts_all_threads=0 max_insts_any_thread=0 max_loads_all_threads=0 max_loads_any_thread=0 +phase=0 profile=0 progress_interval=0 system=system @@ -120,6 +118,7 @@ max_insts_all_threads=0 max_insts_any_thread=0 max_loads_all_threads=0 max_loads_any_thread=0 +phase=0 profile=0 progress_interval=0 system=system @@ -202,8 +201,13 @@ pio_latency=0 pio_size=8 platform=system.tsunami ret_bad_addr=true -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.membus.default [system.physmem] @@ -211,6 +215,7 @@ type=PhysicalMemory file= latency=1 range=0:134217727 +zero=false port=system.membus.port[1] [system.sim_console] @@ -343,8 +348,13 @@ pio_latency=2 pio_size=393216 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[9] [system.tsunami.fake_ata0] @@ -354,8 +364,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[20] [system.tsunami.fake_ata1] @@ -365,8 +380,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[21] [system.tsunami.fake_pnp_addr] @@ -376,8 +396,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[10] [system.tsunami.fake_pnp_read0] @@ -387,8 +412,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[12] [system.tsunami.fake_pnp_read1] @@ -398,8 +428,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[13] [system.tsunami.fake_pnp_read2] @@ -409,8 +444,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[14] [system.tsunami.fake_pnp_read3] @@ -420,8 +460,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[15] [system.tsunami.fake_pnp_read4] @@ -431,8 +476,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[16] [system.tsunami.fake_pnp_read5] @@ -442,8 +492,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[17] [system.tsunami.fake_pnp_read6] @@ -453,8 +508,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[18] [system.tsunami.fake_pnp_read7] @@ -464,8 +524,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[19] [system.tsunami.fake_pnp_write] @@ -475,19 +540,29 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[11] [system.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[8] [system.tsunami.fake_sm_chip] @@ -497,8 +572,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[3] [system.tsunami.fake_uart1] @@ -508,8 +588,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[4] [system.tsunami.fake_uart2] @@ -519,8 +604,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[5] [system.tsunami.fake_uart3] @@ -530,8 +620,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[6] [system.tsunami.fake_uart4] @@ -541,8 +636,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[7] [system.tsunami.fb] @@ -612,8 +712,9 @@ pio_addr=8804615847936 pio_latency=2 platform=system.tsunami system=system -time=1136073600 +time=2009 1 1 0 0 0 3 1 tsunami=system.tsunami +year_is_bcd=false pio=system.iobus.port[23] [system.tsunami.pchip] diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.out b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.out index 3e9c8d863..c1e5baadb 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.out +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.out @@ -10,6 +10,7 @@ type=PhysicalMemory file= range=[0,134217727] latency=1 +zero=false [system] type=LinuxAlphaSystem @@ -57,6 +58,7 @@ do_quiesce=true do_checkpoint_insts=true do_statistics_insts=true clock=1 +phase=0 defer_registration=false // width not specified function_trace=false @@ -78,7 +80,12 @@ pio_addr=0 pio_latency=0 pio_size=8 ret_bad_addr=true -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -149,6 +156,7 @@ do_quiesce=true do_checkpoint_insts=true do_statistics_insts=true clock=1 +phase=0 defer_registration=false // width not specified function_trace=false @@ -171,7 +179,12 @@ pio_addr=8804615848696 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -181,7 +194,12 @@ pio_addr=8804615848936 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -191,7 +209,12 @@ pio_addr=8804615848680 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -201,17 +224,27 @@ pio_addr=8804615848944 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system [system.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -230,7 +263,8 @@ pio_latency=2 frequency=1953125 platform=system.tsunami system=system -time=1136073600 +time=2009 1 1 0 0 0 3 1 +year_is_bcd=false tsunami=system.tsunami [] @@ -269,7 +303,12 @@ pio_addr=8804615848304 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -279,7 +318,12 @@ pio_addr=8804615848432 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -297,7 +341,12 @@ pio_addr=8804615848643 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -307,7 +356,12 @@ pio_addr=8804615848579 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -317,7 +371,12 @@ pio_addr=8804615848515 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -327,7 +386,12 @@ pio_addr=8804615848451 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -337,7 +401,12 @@ pio_addr=8804615848899 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -347,7 +416,12 @@ pio_addr=8804615848835 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -357,7 +431,12 @@ pio_addr=8804615848771 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -367,7 +446,12 @@ pio_addr=8804615848707 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -377,7 +461,12 @@ pio_addr=8804615850617 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -464,7 +553,12 @@ pio_addr=8796093677568 pio_latency=2 pio_size=393216 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -482,7 +576,12 @@ pio_addr=8804615848816 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -492,7 +591,12 @@ pio_addr=8804615848569 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -595,9 +699,6 @@ intel_format=false legion_lockstep=false trace_system=client -[debug] -break_cycles= - [statsreset] reset_cycle=0 diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/m5stats.txt b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/m5stats.txt index ce69639b4..d6bc028f1 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/m5stats.txt +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/m5stats.txt @@ -1,26 +1,26 @@ ---------- Begin Simulation Statistics ---------- -host_inst_rate 321604 # Simulator instruction rate (inst/s) -host_mem_usage 199700 # Number of bytes of host memory used -host_seconds 208.16 # Real time elapsed on the host -host_tick_rate 19071805 # Simulator tick rate (ticks/s) +host_inst_rate 359240 # Simulator instruction rate (inst/s) +host_mem_usage 240844 # Number of bytes of host memory used +host_seconds 186.42 # Real time elapsed on the host +host_tick_rate 21297758 # Simulator tick rate (ticks/s) sim_freq 2000000000 # Frequency of simulated ticks -sim_insts 66945470 # Number of instructions simulated -sim_seconds 1.985009 # Number of seconds simulated -sim_ticks 3970017178 # Number of ticks simulated +sim_insts 66968427 # Number of instructions simulated +sim_seconds 1.985132 # Number of seconds simulated +sim_ticks 3970264174 # Number of ticks simulated system.cpu0.dtb.accesses 1003481 # DTB accesses system.cpu0.dtb.acv 289 # DTB access violations -system.cpu0.dtb.hits 13332675 # DTB hits +system.cpu0.dtb.hits 13332650 # DTB hits system.cpu0.dtb.misses 8437 # DTB misses system.cpu0.dtb.read_accesses 695694 # DTB read accesses system.cpu0.dtb.read_acv 174 # DTB read access violations -system.cpu0.dtb.read_hits 8285791 # DTB read hits +system.cpu0.dtb.read_hits 8285777 # DTB read hits system.cpu0.dtb.read_misses 7640 # DTB read misses system.cpu0.dtb.write_accesses 307787 # DTB write accesses system.cpu0.dtb.write_acv 115 # DTB write access violations -system.cpu0.dtb.write_hits 5046884 # DTB write hits +system.cpu0.dtb.write_hits 5046873 # DTB write hits system.cpu0.dtb.write_misses 797 # DTB write misses -system.cpu0.idle_fraction 0.928150 # Percentage of idle cycles +system.cpu0.idle_fraction 0.928155 # Percentage of idle cycles system.cpu0.itb.accesses 4220935 # ITB accesses system.cpu0.itb.acv 143 # ITB acv system.cpu0.itb.hits 4217111 # ITB hits @@ -58,12 +58,12 @@ system.cpu0.kern.ipl_good_21 143 0.13% 49.16% # nu system.cpu0.kern.ipl_good_22 2005 1.82% 50.97% # number of times we switched to this ipl from a different ipl system.cpu0.kern.ipl_good_30 483 0.44% 51.41% # number of times we switched to this ipl from a different ipl system.cpu0.kern.ipl_good_31 53596 48.59% 100.00% # number of times we switched to this ipl from a different ipl -system.cpu0.kern.ipl_ticks 3970015394 # number of cycles we spent at this ipl -system.cpu0.kern.ipl_ticks_0 3836129328 96.63% 96.63% # number of cycles we spent at this ipl +system.cpu0.kern.ipl_ticks 3970262390 # number of cycles we spent at this ipl +system.cpu0.kern.ipl_ticks_0 3836377682 96.63% 96.63% # number of cycles we spent at this ipl system.cpu0.kern.ipl_ticks_21 133000 0.00% 96.63% # number of cycles we spent at this ipl system.cpu0.kern.ipl_ticks_22 1870128 0.05% 96.68% # number of cycles we spent at this ipl system.cpu0.kern.ipl_ticks_30 1206048 0.03% 96.71% # number of cycles we spent at this ipl -system.cpu0.kern.ipl_ticks_31 130676890 3.29% 100.00% # number of cycles we spent at this ipl +system.cpu0.kern.ipl_ticks_31 130675532 3.29% 100.00% # number of cycles we spent at this ipl system.cpu0.kern.ipl_used 0.807801 # fraction of swpipl calls that actually changed the ipl system.cpu0.kern.ipl_used_0 0.992330 # fraction of swpipl calls that actually changed the ipl system.cpu0.kern.ipl_used_21 1 # fraction of swpipl calls that actually changed the ipl @@ -80,8 +80,8 @@ system.cpu0.kern.mode_switch_good 0.311313 # fr system.cpu0.kern.mode_switch_good_kernel 0.184292 # fraction of useful protection mode switches system.cpu0.kern.mode_switch_good_user 1 # fraction of useful protection mode switches system.cpu0.kern.mode_switch_good_idle <err: div-0> # fraction of useful protection mode switches -system.cpu0.kern.mode_ticks_kernel 3956260432 99.65% 99.65% # number of ticks spent at the given mode -system.cpu0.kern.mode_ticks_user 13754954 0.35% 100.00% # number of ticks spent at the given mode +system.cpu0.kern.mode_ticks_kernel 3956507378 99.65% 99.65% # number of ticks spent at the given mode +system.cpu0.kern.mode_ticks_user 13755004 0.35% 100.00% # number of ticks spent at the given mode system.cpu0.kern.mode_ticks_idle 0 0.00% 100.00% # number of ticks spent at the given mode system.cpu0.kern.swap_context 2908 # number of times the context was actually changed system.cpu0.kern.syscall 227 # number of syscalls executed @@ -115,28 +115,28 @@ system.cpu0.kern.syscall_98 2 0.88% 97.80% # nu system.cpu0.kern.syscall_132 2 0.88% 98.68% # number of syscalls executed system.cpu0.kern.syscall_144 1 0.44% 99.12% # number of syscalls executed system.cpu0.kern.syscall_147 2 0.88% 100.00% # number of syscalls executed -system.cpu0.not_idle_fraction 0.071850 # Percentage of non-idle cycles -system.cpu0.numCycles 3970017178 # number of cpu cycles simulated -system.cpu0.num_insts 52312134 # Number of instructions executed -system.cpu0.num_refs 13564902 # Number of memory references +system.cpu0.not_idle_fraction 0.071845 # Percentage of non-idle cycles +system.cpu0.numCycles 3970264174 # number of cpu cycles simulated +system.cpu0.num_insts 52311968 # Number of instructions executed +system.cpu0.num_refs 13564877 # Number of memory references system.cpu1.dtb.accesses 302962 # DTB accesses system.cpu1.dtb.acv 84 # DTB access violations -system.cpu1.dtb.hits 4635665 # DTB hits +system.cpu1.dtb.hits 4640482 # DTB hits system.cpu1.dtb.misses 3107 # DTB misses system.cpu1.dtb.read_accesses 205912 # DTB read accesses system.cpu1.dtb.read_acv 36 # DTB read access violations -system.cpu1.dtb.read_hits 2664909 # DTB read hits +system.cpu1.dtb.read_hits 2668410 # DTB read hits system.cpu1.dtb.read_misses 2747 # DTB read misses system.cpu1.dtb.write_accesses 97050 # DTB write accesses system.cpu1.dtb.write_acv 48 # DTB write access violations -system.cpu1.dtb.write_hits 1970756 # DTB write hits +system.cpu1.dtb.write_hits 1972072 # DTB write hits system.cpu1.dtb.write_misses 360 # DTB write misses -system.cpu1.idle_fraction 0.974941 # Percentage of idle cycles -system.cpu1.itb.accesses 1965693 # ITB accesses +system.cpu1.idle_fraction 0.974914 # Percentage of idle cycles +system.cpu1.itb.accesses 1965758 # ITB accesses system.cpu1.itb.acv 41 # ITB acv -system.cpu1.itb.hits 1964446 # ITB hits +system.cpu1.itb.hits 1964511 # ITB hits system.cpu1.itb.misses 1247 # ITB misses -system.cpu1.kern.callpal 80664 # number of callpals executed +system.cpu1.kern.callpal 80671 # number of callpals executed system.cpu1.kern.callpal_cserve 1 0.00% 0.00% # number of callpals executed system.cpu1.kern.callpal_wripir 483 0.60% 0.60% # number of callpals executed system.cpu1.kern.callpal_wrmces 1 0.00% 0.60% # number of callpals executed @@ -144,7 +144,7 @@ system.cpu1.kern.callpal_wrfen 1 0.00% 0.60% # nu system.cpu1.kern.callpal_swpctx 2277 2.82% 3.43% # number of callpals executed system.cpu1.kern.callpal_tbi 10 0.01% 3.44% # number of callpals executed system.cpu1.kern.callpal_wrent 7 0.01% 3.45% # number of callpals executed -system.cpu1.kern.callpal_swpipl 71260 88.34% 91.79% # number of callpals executed +system.cpu1.kern.callpal_swpipl 71267 88.34% 91.79% # number of callpals executed system.cpu1.kern.callpal_rdps 2378 2.95% 94.74% # number of callpals executed system.cpu1.kern.callpal_wrkgp 1 0.00% 94.74% # number of callpals executed system.cpu1.kern.callpal_wrusp 3 0.00% 94.74% # number of callpals executed @@ -155,41 +155,41 @@ system.cpu1.kern.callpal_callsys 161 0.20% 99.96% # nu system.cpu1.kern.callpal_imb 31 0.04% 100.00% # number of callpals executed system.cpu1.kern.callpal_rdunique 1 0.00% 100.00% # number of callpals executed system.cpu1.kern.inst.arm 0 # number of arm instructions executed -system.cpu1.kern.inst.hwrei 87713 # number of hwrei instructions executed -system.cpu1.kern.inst.quiesce 2740 # number of quiesce instructions executed -system.cpu1.kern.ipl_count 77873 # number of times we switched to this ipl -system.cpu1.kern.ipl_count_0 30259 38.86% 38.86% # number of times we switched to this ipl +system.cpu1.kern.inst.hwrei 87720 # number of hwrei instructions executed +system.cpu1.kern.inst.quiesce 2808 # number of quiesce instructions executed +system.cpu1.kern.ipl_count 77880 # number of times we switched to this ipl +system.cpu1.kern.ipl_count_0 30262 38.86% 38.86% # number of times we switched to this ipl system.cpu1.kern.ipl_count_22 1997 2.56% 41.42% # number of times we switched to this ipl system.cpu1.kern.ipl_count_30 571 0.73% 42.15% # number of times we switched to this ipl -system.cpu1.kern.ipl_count_31 45046 57.85% 100.00% # number of times we switched to this ipl -system.cpu1.kern.ipl_good 60597 # number of times we switched to this ipl from a different ipl -system.cpu1.kern.ipl_good_0 29300 48.35% 48.35% # number of times we switched to this ipl from a different ipl +system.cpu1.kern.ipl_count_31 45050 57.85% 100.00% # number of times we switched to this ipl +system.cpu1.kern.ipl_good 60603 # number of times we switched to this ipl from a different ipl +system.cpu1.kern.ipl_good_0 29303 48.35% 48.35% # number of times we switched to this ipl from a different ipl system.cpu1.kern.ipl_good_22 1997 3.30% 51.65% # number of times we switched to this ipl from a different ipl system.cpu1.kern.ipl_good_30 571 0.94% 52.59% # number of times we switched to this ipl from a different ipl -system.cpu1.kern.ipl_good_31 28729 47.41% 100.00% # number of times we switched to this ipl from a different ipl -system.cpu1.kern.ipl_ticks 3968771896 # number of cycles we spent at this ipl -system.cpu1.kern.ipl_ticks_0 3847181696 96.94% 96.94% # number of cycles we spent at this ipl -system.cpu1.kern.ipl_ticks_22 1867354 0.05% 96.98% # number of cycles we spent at this ipl -system.cpu1.kern.ipl_ticks_30 1457952 0.04% 97.02% # number of cycles we spent at this ipl -system.cpu1.kern.ipl_ticks_31 118264894 2.98% 100.00% # number of cycles we spent at this ipl -system.cpu1.kern.ipl_used 0.778152 # fraction of swpipl calls that actually changed the ipl -system.cpu1.kern.ipl_used_0 0.968307 # fraction of swpipl calls that actually changed the ipl +system.cpu1.kern.ipl_good_31 28732 47.41% 100.00% # number of times we switched to this ipl from a different ipl +system.cpu1.kern.ipl_ticks 3968772136 # number of cycles we spent at this ipl +system.cpu1.kern.ipl_ticks_0 3846937158 96.93% 96.93% # number of cycles we spent at this ipl +system.cpu1.kern.ipl_ticks_22 1867822 0.05% 96.98% # number of cycles we spent at this ipl +system.cpu1.kern.ipl_ticks_30 1457952 0.04% 97.01% # number of cycles we spent at this ipl +system.cpu1.kern.ipl_ticks_31 118509204 2.99% 100.00% # number of cycles we spent at this ipl +system.cpu1.kern.ipl_used 0.778159 # fraction of swpipl calls that actually changed the ipl +system.cpu1.kern.ipl_used_0 0.968310 # fraction of swpipl calls that actually changed the ipl system.cpu1.kern.ipl_used_22 1 # fraction of swpipl calls that actually changed the ipl system.cpu1.kern.ipl_used_30 1 # fraction of swpipl calls that actually changed the ipl -system.cpu1.kern.ipl_used_31 0.637770 # fraction of swpipl calls that actually changed the ipl -system.cpu1.kern.mode_good_kernel 1013 -system.cpu1.kern.mode_good_user 518 +system.cpu1.kern.ipl_used_31 0.637780 # fraction of swpipl calls that actually changed the ipl +system.cpu1.kern.mode_good_kernel 1014 +system.cpu1.kern.mode_good_user 519 system.cpu1.kern.mode_good_idle 495 system.cpu1.kern.mode_switch_kernel 2345 # number of protection mode switches -system.cpu1.kern.mode_switch_user 518 # number of protection mode switches +system.cpu1.kern.mode_switch_user 519 # number of protection mode switches system.cpu1.kern.mode_switch_idle 3028 # number of protection mode switches -system.cpu1.kern.mode_switch_good 0.343914 # fraction of useful protection mode switches -system.cpu1.kern.mode_switch_good_kernel 0.431983 # fraction of useful protection mode switches +system.cpu1.kern.mode_switch_good 0.344196 # fraction of useful protection mode switches +system.cpu1.kern.mode_switch_good_kernel 0.432409 # fraction of useful protection mode switches system.cpu1.kern.mode_switch_good_user 1 # fraction of useful protection mode switches system.cpu1.kern.mode_switch_good_idle 0.163474 # fraction of useful protection mode switches -system.cpu1.kern.mode_ticks_kernel 63013938 1.59% 1.59% # number of ticks spent at the given mode -system.cpu1.kern.mode_ticks_user 5102326 0.13% 1.72% # number of ticks spent at the given mode -system.cpu1.kern.mode_ticks_idle 3899442912 98.28% 100.00% # number of ticks spent at the given mode +system.cpu1.kern.mode_ticks_kernel 63257834 1.59% 1.59% # number of ticks spent at the given mode +system.cpu1.kern.mode_ticks_user 5106070 0.13% 1.72% # number of ticks spent at the given mode +system.cpu1.kern.mode_ticks_idle 3899443084 98.28% 100.00% # number of ticks spent at the given mode system.cpu1.kern.swap_context 2278 # number of times the context was actually changed system.cpu1.kern.syscall 102 # number of syscalls executed system.cpu1.kern.syscall_2 2 1.96% 1.96% # number of syscalls executed @@ -213,10 +213,10 @@ system.cpu1.kern.syscall_90 1 0.98% 95.10% # nu system.cpu1.kern.syscall_92 2 1.96% 97.06% # number of syscalls executed system.cpu1.kern.syscall_132 2 1.96% 99.02% # number of syscalls executed system.cpu1.kern.syscall_144 1 0.98% 100.00% # number of syscalls executed -system.cpu1.not_idle_fraction 0.025059 # Percentage of non-idle cycles -system.cpu1.numCycles 3968772136 # number of cpu cycles simulated -system.cpu1.num_insts 14633336 # Number of instructions executed -system.cpu1.num_refs 4665250 # Number of memory references +system.cpu1.not_idle_fraction 0.025086 # Percentage of non-idle cycles +system.cpu1.numCycles 3968772376 # number of cpu cycles simulated +system.cpu1.num_insts 14656459 # Number of instructions executed +system.cpu1.num_refs 4670067 # Number of memory references system.disk0.dma_read_bytes 1024 # Number of bytes transfered via DMA reads (not PRD). system.disk0.dma_read_full_pages 0 # Number of full page size DMA reads (not PRD). system.disk0.dma_read_txs 1 # Number of DMA read transactions (not PRD). @@ -234,7 +234,7 @@ system.tsunami.ethernet.coalescedRxIdle <err: div-0> # av system.tsunami.ethernet.coalescedRxOk <err: div-0> # average number of RxOk's coalesced into each post system.tsunami.ethernet.coalescedRxOrn <err: div-0> # average number of RxOrn's coalesced into each post system.tsunami.ethernet.coalescedSwi <err: div-0> # average number of Swi's coalesced into each post -system.tsunami.ethernet.coalescedTotal <err: div-0> # average number of interrupts coalesced into each post +system.tsunami.ethernet.coalescedTotal no value # average number of interrupts coalesced into each post system.tsunami.ethernet.coalescedTxDesc <err: div-0> # average number of TxDesc's coalesced into each post system.tsunami.ethernet.coalescedTxIdle <err: div-0> # average number of TxIdle's coalesced into each post system.tsunami.ethernet.coalescedTxOk <err: div-0> # average number of TxOk's coalesced into each post diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stderr b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stderr index c211114c2..5b02d9b91 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stderr +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stderr @@ -1,8 +1,8 @@ Warning: rounding error > tolerance 0.002000 rounded to 0 - 0: system.tsunami.io.rtc: Real-time clock set to Sun Jan 1 00:00:00 2006 -Listening for console connection on port 3457 -0: system.remote_gdb.listener: listening for remote gdb #0 on port 7001 -0: system.remote_gdb.listener: listening for remote gdb #1 on port 7002 + 0: system.tsunami.io.rtc: Real-time clock set to Thu Jan 1 00:00:00 2009 +Listening for console connection on port 3456 +0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 +0: system.remote_gdb.listener: listening for remote gdb #1 on port 7001 warn: Entering event queue @ 0. Starting simulation... warn: 1082476: Trying to launch CPU number 1! diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stdout b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stdout index c97d4fc44..9c25032e4 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stdout +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stdout @@ -5,8 +5,8 @@ The Regents of The University of Michigan All Rights Reserved -M5 compiled Nov 5 2006 19:41:29 -M5 started Sun Nov 5 20:04:42 2006 -M5 executing on zizzer.eecs.umich.edu -command line: build/ALPHA_FS/m5.opt -d build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual tests/run.py quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual -Exiting @ tick 3970017178 because m5_exit instruction encountered +M5 compiled Jan 25 2007 15:05:30 +M5 started Thu Jan 25 15:09:33 2007 +M5 executing on zeep +command line: /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/m5.opt -d /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual tests/run.py quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual +Exiting @ tick 3970264174 because m5_exit instruction encountered diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.ini b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.ini index b7bd833a9..104bbce36 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.ini +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.ini @@ -7,9 +7,6 @@ max_tick=0 output_file=cout progress_interval=0 -[debug] -break_cycles= - [exetrace] intel_format=false legion_lockstep=false @@ -89,6 +86,7 @@ max_insts_all_threads=0 max_insts_any_thread=0 max_loads_all_threads=0 max_loads_any_thread=0 +phase=0 profile=0 progress_interval=0 system=system @@ -171,8 +169,13 @@ pio_latency=0 pio_size=8 platform=system.tsunami ret_bad_addr=true -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.membus.default [system.physmem] @@ -180,6 +183,7 @@ type=PhysicalMemory file= latency=1 range=0:134217727 +zero=false port=system.membus.port[1] [system.sim_console] @@ -312,8 +316,13 @@ pio_latency=2 pio_size=393216 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[9] [system.tsunami.fake_ata0] @@ -323,8 +332,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[20] [system.tsunami.fake_ata1] @@ -334,8 +348,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[21] [system.tsunami.fake_pnp_addr] @@ -345,8 +364,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[10] [system.tsunami.fake_pnp_read0] @@ -356,8 +380,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[12] [system.tsunami.fake_pnp_read1] @@ -367,8 +396,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[13] [system.tsunami.fake_pnp_read2] @@ -378,8 +412,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[14] [system.tsunami.fake_pnp_read3] @@ -389,8 +428,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[15] [system.tsunami.fake_pnp_read4] @@ -400,8 +444,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[16] [system.tsunami.fake_pnp_read5] @@ -411,8 +460,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[17] [system.tsunami.fake_pnp_read6] @@ -422,8 +476,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[18] [system.tsunami.fake_pnp_read7] @@ -433,8 +492,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[19] [system.tsunami.fake_pnp_write] @@ -444,19 +508,29 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[11] [system.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[8] [system.tsunami.fake_sm_chip] @@ -466,8 +540,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[3] [system.tsunami.fake_uart1] @@ -477,8 +556,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[4] [system.tsunami.fake_uart2] @@ -488,8 +572,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[5] [system.tsunami.fake_uart3] @@ -499,8 +588,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[6] [system.tsunami.fake_uart4] @@ -510,8 +604,13 @@ pio_latency=2 pio_size=8 platform=system.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=system +update_data=false +warn_access= pio=system.iobus.port[7] [system.tsunami.fb] @@ -581,8 +680,9 @@ pio_addr=8804615847936 pio_latency=2 platform=system.tsunami system=system -time=1136073600 +time=2009 1 1 0 0 0 3 1 tsunami=system.tsunami +year_is_bcd=false pio=system.iobus.port[23] [system.tsunami.pchip] diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.out b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.out index 13bf1de8e..8791359a1 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.out +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.out @@ -10,6 +10,7 @@ type=PhysicalMemory file= range=[0,134217727] latency=1 +zero=false [system] type=LinuxAlphaSystem @@ -57,6 +58,7 @@ do_quiesce=true do_checkpoint_insts=true do_statistics_insts=true clock=1 +phase=0 defer_registration=false // width not specified function_trace=false @@ -78,7 +80,12 @@ pio_addr=0 pio_latency=0 pio_size=8 ret_bad_addr=true -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -141,7 +148,12 @@ pio_addr=8804615848696 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -151,7 +163,12 @@ pio_addr=8804615848936 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -161,7 +178,12 @@ pio_addr=8804615848680 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -171,17 +193,27 @@ pio_addr=8804615848944 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system [system.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -200,7 +232,8 @@ pio_latency=2 frequency=1953125 platform=system.tsunami system=system -time=1136073600 +time=2009 1 1 0 0 0 3 1 +year_is_bcd=false tsunami=system.tsunami [] @@ -239,7 +272,12 @@ pio_addr=8804615848304 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -249,7 +287,12 @@ pio_addr=8804615848432 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -267,7 +310,12 @@ pio_addr=8804615848643 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -277,7 +325,12 @@ pio_addr=8804615848579 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -287,7 +340,12 @@ pio_addr=8804615848515 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -297,7 +355,12 @@ pio_addr=8804615848451 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -307,7 +370,12 @@ pio_addr=8804615848899 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -317,7 +385,12 @@ pio_addr=8804615848835 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -327,7 +400,12 @@ pio_addr=8804615848771 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -337,7 +415,12 @@ pio_addr=8804615848707 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -347,7 +430,12 @@ pio_addr=8804615850617 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -434,7 +522,12 @@ pio_addr=8796093677568 pio_latency=2 pio_size=393216 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -452,7 +545,12 @@ pio_addr=8804615848816 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -462,7 +560,12 @@ pio_addr=8804615848569 pio_latency=2 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=system.tsunami system=system @@ -565,9 +668,6 @@ intel_format=false legion_lockstep=false trace_system=client -[debug] -break_cycles= - [statsreset] reset_cycle=0 diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/m5stats.txt b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/m5stats.txt index 9e46f55ce..75746eadf 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/m5stats.txt +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/m5stats.txt @@ -1,31 +1,31 @@ ---------- Begin Simulation Statistics ---------- -host_inst_rate 328353 # Simulator instruction rate (inst/s) -host_mem_usage 199236 # Number of bytes of host memory used -host_seconds 188.42 # Real time elapsed on the host -host_tick_rate 20564913 # Simulator tick rate (ticks/s) +host_inst_rate 469266 # Simulator instruction rate (inst/s) +host_mem_usage 238376 # Number of bytes of host memory used +host_seconds 131.89 # Real time elapsed on the host +host_tick_rate 29380471 # Simulator tick rate (ticks/s) sim_freq 2000000000 # Frequency of simulated ticks -sim_insts 61868161 # Number of instructions simulated -sim_seconds 1.937422 # Number of seconds simulated -sim_ticks 3874844018 # Number of ticks simulated +sim_insts 61893104 # Number of instructions simulated +sim_seconds 1.937550 # Number of seconds simulated +sim_ticks 3875100962 # Number of ticks simulated system.cpu.dtb.accesses 1304554 # DTB accesses system.cpu.dtb.acv 367 # DTB access violations -system.cpu.dtb.hits 16566194 # DTB hits +system.cpu.dtb.hits 16571487 # DTB hits system.cpu.dtb.misses 11447 # DTB misses system.cpu.dtb.read_accesses 900486 # DTB read accesses system.cpu.dtb.read_acv 210 # DTB read access violations -system.cpu.dtb.read_hits 10048141 # DTB read hits +system.cpu.dtb.read_hits 10051940 # DTB read hits system.cpu.dtb.read_misses 10303 # DTB read misses system.cpu.dtb.write_accesses 404068 # DTB write accesses system.cpu.dtb.write_acv 157 # DTB write access violations -system.cpu.dtb.write_hits 6518053 # DTB write hits +system.cpu.dtb.write_hits 6519547 # DTB write hits system.cpu.dtb.write_misses 1144 # DTB write misses -system.cpu.idle_fraction 0.918945 # Percentage of idle cycles -system.cpu.itb.accesses 5663974 # ITB accesses +system.cpu.idle_fraction 0.918919 # Percentage of idle cycles +system.cpu.itb.accesses 5664253 # ITB accesses system.cpu.itb.acv 184 # ITB acv -system.cpu.itb.hits 5658971 # ITB hits +system.cpu.itb.hits 5659250 # ITB hits system.cpu.itb.misses 5003 # ITB misses -system.cpu.kern.callpal 195242 # number of callpals executed +system.cpu.kern.callpal 195265 # number of callpals executed system.cpu.kern.callpal_cserve 1 0.00% 0.00% # number of callpals executed system.cpu.kern.callpal_wrmces 1 0.00% 0.00% # number of callpals executed system.cpu.kern.callpal_wrfen 1 0.00% 0.00% # number of callpals executed @@ -33,51 +33,51 @@ system.cpu.kern.callpal_wrvptptr 1 0.00% 0.00% # nu system.cpu.kern.callpal_swpctx 4161 2.13% 2.13% # number of callpals executed system.cpu.kern.callpal_tbi 54 0.03% 2.16% # number of callpals executed system.cpu.kern.callpal_wrent 7 0.00% 2.16% # number of callpals executed -system.cpu.kern.callpal_swpipl 178096 91.22% 93.38% # number of callpals executed -system.cpu.kern.callpal_rdps 6977 3.57% 96.96% # number of callpals executed +system.cpu.kern.callpal_swpipl 178117 91.22% 93.38% # number of callpals executed +system.cpu.kern.callpal_rdps 6978 3.57% 96.96% # number of callpals executed system.cpu.kern.callpal_wrkgp 1 0.00% 96.96% # number of callpals executed system.cpu.kern.callpal_wrusp 7 0.00% 96.96% # number of callpals executed system.cpu.kern.callpal_rdusp 9 0.00% 96.96% # number of callpals executed system.cpu.kern.callpal_whami 2 0.00% 96.97% # number of callpals executed -system.cpu.kern.callpal_rti 5212 2.67% 99.64% # number of callpals executed +system.cpu.kern.callpal_rti 5213 2.67% 99.64% # number of callpals executed system.cpu.kern.callpal_callsys 531 0.27% 99.91% # number of callpals executed system.cpu.kern.callpal_imb 181 0.09% 100.00% # number of callpals executed system.cpu.kern.inst.arm 0 # number of arm instructions executed -system.cpu.kern.inst.hwrei 214344 # number of hwrei instructions executed -system.cpu.kern.inst.quiesce 6112 # number of quiesce instructions executed -system.cpu.kern.ipl_count 185408 # number of times we switched to this ipl -system.cpu.kern.ipl_count_0 75624 40.79% 40.79% # number of times we switched to this ipl -system.cpu.kern.ipl_count_21 143 0.08% 40.87% # number of times we switched to this ipl -system.cpu.kern.ipl_count_22 1956 1.05% 41.92% # number of times we switched to this ipl -system.cpu.kern.ipl_count_31 107685 58.08% 100.00% # number of times we switched to this ipl -system.cpu.kern.ipl_good 150613 # number of times we switched to this ipl from a different ipl -system.cpu.kern.ipl_good_0 74257 49.30% 49.30% # number of times we switched to this ipl from a different ipl +system.cpu.kern.inst.hwrei 214368 # number of hwrei instructions executed +system.cpu.kern.inst.quiesce 6180 # number of quiesce instructions executed +system.cpu.kern.ipl_count 185431 # number of times we switched to this ipl +system.cpu.kern.ipl_count_0 75630 40.79% 40.79% # number of times we switched to this ipl +system.cpu.kern.ipl_count_21 143 0.08% 40.86% # number of times we switched to this ipl +system.cpu.kern.ipl_count_22 1957 1.06% 41.92% # number of times we switched to this ipl +system.cpu.kern.ipl_count_31 107701 58.08% 100.00% # number of times we switched to this ipl +system.cpu.kern.ipl_good 150626 # number of times we switched to this ipl from a different ipl +system.cpu.kern.ipl_good_0 74263 49.30% 49.30% # number of times we switched to this ipl from a different ipl system.cpu.kern.ipl_good_21 143 0.09% 49.40% # number of times we switched to this ipl from a different ipl -system.cpu.kern.ipl_good_22 1956 1.30% 50.70% # number of times we switched to this ipl from a different ipl -system.cpu.kern.ipl_good_31 74257 49.30% 100.00% # number of times we switched to this ipl from a different ipl -system.cpu.kern.ipl_ticks 3874842234 # number of cycles we spent at this ipl -system.cpu.kern.ipl_ticks_0 3747190106 96.71% 96.71% # number of cycles we spent at this ipl -system.cpu.kern.ipl_ticks_21 122728 0.00% 96.71% # number of cycles we spent at this ipl -system.cpu.kern.ipl_ticks_22 915408 0.02% 96.73% # number of cycles we spent at this ipl -system.cpu.kern.ipl_ticks_31 126613992 3.27% 100.00% # number of cycles we spent at this ipl -system.cpu.kern.ipl_used 0.812333 # fraction of swpipl calls that actually changed the ipl -system.cpu.kern.ipl_used_0 0.981924 # fraction of swpipl calls that actually changed the ipl +system.cpu.kern.ipl_good_22 1957 1.30% 50.70% # number of times we switched to this ipl from a different ipl +system.cpu.kern.ipl_good_31 74263 49.30% 100.00% # number of times we switched to this ipl from a different ipl +system.cpu.kern.ipl_ticks 3875099178 # number of cycles we spent at this ipl +system.cpu.kern.ipl_ticks_0 3747191842 96.70% 96.70% # number of cycles we spent at this ipl +system.cpu.kern.ipl_ticks_21 122728 0.00% 96.70% # number of cycles we spent at this ipl +system.cpu.kern.ipl_ticks_22 915876 0.02% 96.73% # number of cycles we spent at this ipl +system.cpu.kern.ipl_ticks_31 126868732 3.27% 100.00% # number of cycles we spent at this ipl +system.cpu.kern.ipl_used 0.812302 # fraction of swpipl calls that actually changed the ipl +system.cpu.kern.ipl_used_0 0.981925 # fraction of swpipl calls that actually changed the ipl system.cpu.kern.ipl_used_21 1 # fraction of swpipl calls that actually changed the ipl system.cpu.kern.ipl_used_22 1 # fraction of swpipl calls that actually changed the ipl -system.cpu.kern.ipl_used_31 0.689576 # fraction of swpipl calls that actually changed the ipl -system.cpu.kern.mode_good_kernel 1923 -system.cpu.kern.mode_good_user 1762 +system.cpu.kern.ipl_used_31 0.689529 # fraction of swpipl calls that actually changed the ipl +system.cpu.kern.mode_good_kernel 1926 +system.cpu.kern.mode_good_user 1765 system.cpu.kern.mode_good_idle 161 -system.cpu.kern.mode_switch_kernel 5967 # number of protection mode switches -system.cpu.kern.mode_switch_user 1762 # number of protection mode switches +system.cpu.kern.mode_switch_kernel 5968 # number of protection mode switches +system.cpu.kern.mode_switch_user 1765 # number of protection mode switches system.cpu.kern.mode_switch_idle 2072 # number of protection mode switches -system.cpu.kern.mode_switch_good 0.392409 # fraction of useful protection mode switches -system.cpu.kern.mode_switch_good_kernel 0.322272 # fraction of useful protection mode switches +system.cpu.kern.mode_switch_good 0.392861 # fraction of useful protection mode switches +system.cpu.kern.mode_switch_good_kernel 0.322721 # fraction of useful protection mode switches system.cpu.kern.mode_switch_good_user 1 # fraction of useful protection mode switches system.cpu.kern.mode_switch_good_idle 0.077703 # fraction of useful protection mode switches -system.cpu.kern.mode_ticks_kernel 118227580 3.05% 3.05% # number of ticks spent at the given mode -system.cpu.kern.mode_ticks_user 18744852 0.48% 3.53% # number of ticks spent at the given mode -system.cpu.kern.mode_ticks_idle 3737869794 96.47% 100.00% # number of ticks spent at the given mode +system.cpu.kern.mode_ticks_kernel 118484404 3.06% 3.06% # number of ticks spent at the given mode +system.cpu.kern.mode_ticks_user 18744972 0.48% 3.54% # number of ticks spent at the given mode +system.cpu.kern.mode_ticks_idle 3737869794 96.46% 100.00% # number of ticks spent at the given mode system.cpu.kern.swap_context 4162 # number of times the context was actually changed system.cpu.kern.syscall 329 # number of syscalls executed system.cpu.kern.syscall_2 8 2.43% 2.43% # number of syscalls executed @@ -110,10 +110,10 @@ system.cpu.kern.syscall_98 2 0.61% 97.57% # nu system.cpu.kern.syscall_132 4 1.22% 98.78% # number of syscalls executed system.cpu.kern.syscall_144 2 0.61% 99.39% # number of syscalls executed system.cpu.kern.syscall_147 2 0.61% 100.00% # number of syscalls executed -system.cpu.not_idle_fraction 0.081055 # Percentage of non-idle cycles -system.cpu.numCycles 3874844018 # number of cpu cycles simulated -system.cpu.num_insts 61868161 # Number of instructions executed -system.cpu.num_refs 16814275 # Number of memory references +system.cpu.not_idle_fraction 0.081081 # Percentage of non-idle cycles +system.cpu.numCycles 3875100962 # number of cpu cycles simulated +system.cpu.num_insts 61893104 # Number of instructions executed +system.cpu.num_refs 16819569 # Number of memory references system.disk0.dma_read_bytes 1024 # Number of bytes transfered via DMA reads (not PRD). system.disk0.dma_read_full_pages 0 # Number of full page size DMA reads (not PRD). system.disk0.dma_read_txs 1 # Number of DMA read transactions (not PRD). @@ -129,9 +129,9 @@ system.disk2.dma_write_txs 1 # Nu system.tsunami.ethernet.coalescedRxDesc <err: div-0> # average number of RxDesc's coalesced into each post system.tsunami.ethernet.coalescedRxIdle <err: div-0> # average number of RxIdle's coalesced into each post system.tsunami.ethernet.coalescedRxOk <err: div-0> # average number of RxOk's coalesced into each post -system.tsunami.ethernet.coalescedRxOrn no value # average number of RxOrn's coalesced into each post +system.tsunami.ethernet.coalescedRxOrn <err: div-0> # average number of RxOrn's coalesced into each post system.tsunami.ethernet.coalescedSwi <err: div-0> # average number of Swi's coalesced into each post -system.tsunami.ethernet.coalescedTotal <err: div-0> # average number of interrupts coalesced into each post +system.tsunami.ethernet.coalescedTotal no value # average number of interrupts coalesced into each post system.tsunami.ethernet.coalescedTxDesc <err: div-0> # average number of TxDesc's coalesced into each post system.tsunami.ethernet.coalescedTxIdle <err: div-0> # average number of TxIdle's coalesced into each post system.tsunami.ethernet.coalescedTxOk <err: div-0> # average number of TxOk's coalesced into each post diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stderr b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stderr index a8bcb04d9..69304a604 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stderr +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stderr @@ -1,6 +1,6 @@ Warning: rounding error > tolerance 0.002000 rounded to 0 - 0: system.tsunami.io.rtc: Real-time clock set to Sun Jan 1 00:00:00 2006 + 0: system.tsunami.io.rtc: Real-time clock set to Thu Jan 1 00:00:00 2009 Listening for console connection on port 3456 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 warn: Entering event queue @ 0. Starting simulation... diff --git a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stdout b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stdout index 9ae43c290..206c366c1 100644 --- a/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stdout +++ b/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stdout @@ -5,8 +5,8 @@ The Regents of The University of Michigan All Rights Reserved -M5 compiled Nov 5 2006 19:41:29 -M5 started Sun Nov 5 20:04:39 2006 -M5 executing on zizzer.eecs.umich.edu -command line: build/ALPHA_FS/m5.opt -d build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-timing tests/run.py quick/10.linux-boot/alpha/linux/tsunami-simple-timing -Exiting @ tick 3874844018 because m5_exit instruction encountered +M5 compiled Jan 25 2007 15:05:30 +M5 started Thu Jan 25 15:07:20 2007 +M5 executing on zeep +command line: /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/m5.opt -d /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-timing tests/run.py quick/10.linux-boot/alpha/linux/tsunami-simple-timing +Exiting @ tick 3875100962 because m5_exit instruction encountered diff --git a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.ini b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.ini index 791395981..67632ca08 100644 --- a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.ini +++ b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.ini @@ -18,7 +18,7 @@ kernel=/dist/m5/system/binaries/vmlinux mem_mode=atomic pal=/dist/m5/system/binaries/ts_osfpal physmem=drivesys.physmem -readfile=/z/hsul/work/m5/newmem/configs/boot/netperf-server.rcS +readfile=/y/binkertn/research/m5/rtc/configs/boot/netperf-server.rcS symbolfile= system_rev=1024 system_type=34 @@ -134,8 +134,13 @@ pio_latency=1 pio_size=8 platform=drivesys.tsunami ret_bad_addr=true -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.membus.default [drivesys.physmem] @@ -143,6 +148,7 @@ type=PhysicalMemory file= latency=1 range=0:134217727 +zero=false port=drivesys.membus.port[1] [drivesys.sim_console] @@ -275,8 +281,13 @@ pio_latency=1000 pio_size=393216 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[9] [drivesys.tsunami.fake_ata0] @@ -286,8 +297,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[20] [drivesys.tsunami.fake_ata1] @@ -297,8 +313,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[21] [drivesys.tsunami.fake_pnp_addr] @@ -308,8 +329,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[10] [drivesys.tsunami.fake_pnp_read0] @@ -319,8 +345,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[12] [drivesys.tsunami.fake_pnp_read1] @@ -330,8 +361,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[13] [drivesys.tsunami.fake_pnp_read2] @@ -341,8 +377,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[14] [drivesys.tsunami.fake_pnp_read3] @@ -352,8 +393,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[15] [drivesys.tsunami.fake_pnp_read4] @@ -363,8 +409,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[16] [drivesys.tsunami.fake_pnp_read5] @@ -374,8 +425,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[17] [drivesys.tsunami.fake_pnp_read6] @@ -385,8 +441,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[18] [drivesys.tsunami.fake_pnp_read7] @@ -396,8 +457,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[19] [drivesys.tsunami.fake_pnp_write] @@ -407,19 +473,29 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[11] [drivesys.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[8] [drivesys.tsunami.fake_sm_chip] @@ -429,8 +505,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[3] [drivesys.tsunami.fake_uart1] @@ -440,8 +521,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[4] [drivesys.tsunami.fake_uart2] @@ -451,8 +537,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[5] [drivesys.tsunami.fake_uart3] @@ -462,8 +553,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[6] [drivesys.tsunami.fake_uart4] @@ -473,8 +569,13 @@ pio_latency=1000 pio_size=8 platform=drivesys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=drivesys +update_data=false +warn_access= pio=drivesys.iobus.port[7] [drivesys.tsunami.fb] @@ -544,8 +645,9 @@ pio_addr=8804615847936 pio_latency=1000 platform=drivesys.tsunami system=drivesys -time=1136073600 +time=2009 1 1 0 0 0 3 1 tsunami=drivesys.tsunami +year_is_bcd=false pio=drivesys.iobus.port[23] [drivesys.tsunami.pchip] @@ -637,7 +739,7 @@ kernel=/dist/m5/system/binaries/vmlinux mem_mode=atomic pal=/dist/m5/system/binaries/ts_osfpal physmem=testsys.physmem -readfile=/z/hsul/work/m5/newmem/configs/boot/netperf-stream-client.rcS +readfile=/y/binkertn/research/m5/rtc/configs/boot/netperf-stream-client.rcS symbolfile= system_rev=1024 system_type=34 @@ -753,8 +855,13 @@ pio_latency=1 pio_size=8 platform=testsys.tsunami ret_bad_addr=true -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.membus.default [testsys.physmem] @@ -762,6 +869,7 @@ type=PhysicalMemory file= latency=1 range=0:134217727 +zero=false port=testsys.membus.port[1] [testsys.sim_console] @@ -894,8 +1002,13 @@ pio_latency=1000 pio_size=393216 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[9] [testsys.tsunami.fake_ata0] @@ -905,8 +1018,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[20] [testsys.tsunami.fake_ata1] @@ -916,8 +1034,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[21] [testsys.tsunami.fake_pnp_addr] @@ -927,8 +1050,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[10] [testsys.tsunami.fake_pnp_read0] @@ -938,8 +1066,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[12] [testsys.tsunami.fake_pnp_read1] @@ -949,8 +1082,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[13] [testsys.tsunami.fake_pnp_read2] @@ -960,8 +1098,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[14] [testsys.tsunami.fake_pnp_read3] @@ -971,8 +1114,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[15] [testsys.tsunami.fake_pnp_read4] @@ -982,8 +1130,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[16] [testsys.tsunami.fake_pnp_read5] @@ -993,8 +1146,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[17] [testsys.tsunami.fake_pnp_read6] @@ -1004,8 +1162,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[18] [testsys.tsunami.fake_pnp_read7] @@ -1015,8 +1178,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[19] [testsys.tsunami.fake_pnp_write] @@ -1026,19 +1194,29 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[11] [testsys.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[8] [testsys.tsunami.fake_sm_chip] @@ -1048,8 +1226,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[3] [testsys.tsunami.fake_uart1] @@ -1059,8 +1242,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[4] [testsys.tsunami.fake_uart2] @@ -1070,8 +1258,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[5] [testsys.tsunami.fake_uart3] @@ -1081,8 +1274,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[6] [testsys.tsunami.fake_uart4] @@ -1092,8 +1290,13 @@ pio_latency=1000 pio_size=8 platform=testsys.tsunami ret_bad_addr=false -ret_data=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 +ret_data8=255 system=testsys +update_data=false +warn_access= pio=testsys.iobus.port[7] [testsys.tsunami.fb] @@ -1163,8 +1366,9 @@ pio_addr=8804615847936 pio_latency=1000 platform=testsys.tsunami system=testsys -time=1136073600 +time=2009 1 1 0 0 0 3 1 tsunami=testsys.tsunami +year_is_bcd=false pio=testsys.iobus.port[23] [testsys.tsunami.pchip] diff --git a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.out b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.out index 21b542b9b..7ef28f570 100644 --- a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.out +++ b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.out @@ -10,6 +10,7 @@ type=PhysicalMemory file= range=[0,134217727] latency=1 +zero=false [testsys] type=LinuxAlphaSystem @@ -20,7 +21,7 @@ kernel=/dist/m5/system/binaries/vmlinux console=/dist/m5/system/binaries/console pal=/dist/m5/system/binaries/ts_osfpal boot_osflags=root=/dev/hda1 console=ttyS0 -readfile=/z/hsul/work/m5/newmem/configs/boot/netperf-stream-client.rcS +readfile=/y/binkertn/research/m5/rtc/configs/boot/netperf-stream-client.rcS symbolfile= init_param=0 system_type=34 @@ -140,6 +141,7 @@ type=PhysicalMemory file= range=[0,134217727] latency=1 +zero=false [drivesys] type=LinuxAlphaSystem @@ -150,7 +152,7 @@ kernel=/dist/m5/system/binaries/vmlinux console=/dist/m5/system/binaries/console pal=/dist/m5/system/binaries/ts_osfpal boot_osflags=root=/dev/hda1 console=ttyS0 -readfile=/z/hsul/work/m5/newmem/configs/boot/netperf-server.rcS +readfile=/y/binkertn/research/m5/rtc/configs/boot/netperf-server.rcS symbolfile= init_param=0 system_type=34 @@ -292,7 +294,12 @@ pio_addr=0 pio_latency=1 pio_size=8 ret_bad_addr=true -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -355,7 +362,12 @@ pio_addr=8804615848696 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -365,7 +377,12 @@ pio_addr=8804615848936 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -375,7 +392,12 @@ pio_addr=8804615848680 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -385,17 +407,27 @@ pio_addr=8804615848944 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys [testsys.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -414,7 +446,8 @@ pio_latency=1000 frequency=976562500 platform=testsys.tsunami system=testsys -time=1136073600 +time=2009 1 1 0 0 0 3 1 +year_is_bcd=false tsunami=testsys.tsunami [] @@ -453,7 +486,12 @@ pio_addr=8804615848304 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -463,7 +501,12 @@ pio_addr=8804615848432 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -481,7 +524,12 @@ pio_addr=8804615848643 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -491,7 +539,12 @@ pio_addr=8804615848579 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -501,7 +554,12 @@ pio_addr=8804615848515 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -511,7 +569,12 @@ pio_addr=8804615848451 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -521,7 +584,12 @@ pio_addr=8804615848899 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -531,7 +599,12 @@ pio_addr=8804615848835 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -541,7 +614,12 @@ pio_addr=8804615848771 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -551,7 +629,12 @@ pio_addr=8804615848707 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -561,7 +644,12 @@ pio_addr=8804615850617 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -579,7 +667,12 @@ pio_addr=8796093677568 pio_latency=1000 pio_size=393216 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -597,7 +690,12 @@ pio_addr=8804615848816 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -607,7 +705,12 @@ pio_addr=8804615848569 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=testsys.tsunami system=testsys @@ -678,7 +781,12 @@ pio_addr=0 pio_latency=1 pio_size=8 ret_bad_addr=true -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -741,7 +849,12 @@ pio_addr=8804615848696 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -751,7 +864,12 @@ pio_addr=8804615848936 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -761,7 +879,12 @@ pio_addr=8804615848680 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -771,17 +894,27 @@ pio_addr=8804615848944 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys [drivesys.tsunami.fake_ppc] type=IsaFake -pio_addr=8804615848892 +pio_addr=8804615848891 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -800,7 +933,8 @@ pio_latency=1000 frequency=976562500 platform=drivesys.tsunami system=drivesys -time=1136073600 +time=2009 1 1 0 0 0 3 1 +year_is_bcd=false tsunami=drivesys.tsunami [] @@ -839,7 +973,12 @@ pio_addr=8804615848304 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -849,7 +988,12 @@ pio_addr=8804615848432 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -867,7 +1011,12 @@ pio_addr=8804615848643 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -877,7 +1026,12 @@ pio_addr=8804615848579 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -887,7 +1041,12 @@ pio_addr=8804615848515 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -897,7 +1056,12 @@ pio_addr=8804615848451 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -907,7 +1071,12 @@ pio_addr=8804615848899 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -917,7 +1086,12 @@ pio_addr=8804615848835 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -927,7 +1101,12 @@ pio_addr=8804615848771 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -937,7 +1116,12 @@ pio_addr=8804615848707 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -947,7 +1131,12 @@ pio_addr=8804615850617 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -965,7 +1154,12 @@ pio_addr=8796093677568 pio_latency=1000 pio_size=393216 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -983,7 +1177,12 @@ pio_addr=8804615848816 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys @@ -993,7 +1192,12 @@ pio_addr=8804615848569 pio_latency=1000 pio_size=8 ret_bad_addr=false -ret_data=255 +update_data=false +warn_access= +ret_data8=255 +ret_data16=65535 +ret_data32=4294967295 +ret_data64=18446744073709551615 platform=drivesys.tsunami system=drivesys diff --git a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/m5stats.txt b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/m5stats.txt index dc4ea4a17..585dfef42 100644 --- a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/m5stats.txt +++ b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/m5stats.txt @@ -39,8 +39,8 @@ drivesys.cpu.kern.ipl_good_0 1189 45.85% 45.85% # nu drivesys.cpu.kern.ipl_good_21 10 0.39% 46.24% # number of times we switched to this ipl from a different ipl drivesys.cpu.kern.ipl_good_22 205 7.91% 54.15% # number of times we switched to this ipl from a different ipl drivesys.cpu.kern.ipl_good_31 1189 45.85% 100.00% # number of times we switched to this ipl from a different ipl -drivesys.cpu.kern.ipl_ticks 199572064367 # number of cycles we spent at this ipl -drivesys.cpu.kern.ipl_ticks_0 199571744404 100.00% 100.00% # number of cycles we spent at this ipl +drivesys.cpu.kern.ipl_ticks 199572064521 # number of cycles we spent at this ipl +drivesys.cpu.kern.ipl_ticks_0 199571744558 100.00% 100.00% # number of cycles we spent at this ipl drivesys.cpu.kern.ipl_ticks_21 1620 0.00% 100.00% # number of cycles we spent at this ipl drivesys.cpu.kern.ipl_ticks_22 17630 0.00% 100.00% # number of cycles we spent at this ipl drivesys.cpu.kern.ipl_ticks_31 300713 0.00% 100.00% # number of cycles we spent at this ipl @@ -61,7 +61,7 @@ drivesys.cpu.kern.mode_switch_good_user 1 # fr drivesys.cpu.kern.mode_switch_good_idle 0.013761 # fraction of useful protection mode switches drivesys.cpu.kern.mode_ticks_kernel 263475 0.24% 0.24% # number of ticks spent at the given mode drivesys.cpu.kern.mode_ticks_user 1278343 1.18% 1.43% # number of ticks spent at the given mode -drivesys.cpu.kern.mode_ticks_idle 106485234 98.57% 100.00% # number of ticks spent at the given mode +drivesys.cpu.kern.mode_ticks_idle 106485080 98.57% 100.00% # number of ticks spent at the given mode drivesys.cpu.kern.swap_context 70 # number of times the context was actually changed drivesys.cpu.kern.syscall 22 # number of syscalls executed drivesys.cpu.kern.syscall_2 1 4.55% 4.55% # number of syscalls executed @@ -77,8 +77,8 @@ drivesys.cpu.kern.syscall_106 1 4.55% 86.36% # nu drivesys.cpu.kern.syscall_118 2 9.09% 95.45% # number of syscalls executed drivesys.cpu.kern.syscall_150 1 4.55% 100.00% # number of syscalls executed drivesys.cpu.not_idle_fraction 0.000000 # Percentage of non-idle cycles -drivesys.cpu.numCycles 1959293 # number of cpu cycles simulated -drivesys.cpu.num_insts 1959077 # Number of instructions executed +drivesys.cpu.numCycles 1959205 # number of cpu cycles simulated +drivesys.cpu.num_insts 1958989 # Number of instructions executed drivesys.cpu.num_refs 626286 # Number of memory references drivesys.disk0.dma_read_bytes 0 # Number of bytes transfered via DMA reads (not PRD). drivesys.disk0.dma_read_full_pages 0 # Number of full page size DMA reads (not PRD). @@ -140,12 +140,12 @@ drivesys.tsunami.ethernet.txPPS 25 # Pa drivesys.tsunami.ethernet.txPackets 5 # Number of Packets Transmitted drivesys.tsunami.ethernet.txTcpChecksums 2 # Number of tx TCP Checksums done by device drivesys.tsunami.ethernet.txUdpChecksums 0 # Number of tx UDP Checksums done by device -host_inst_rate 38710250 # Simulator instruction rate (inst/s) -host_mem_usage 411152 # Number of bytes of host memory used -host_seconds 7.14 # Real time elapsed on the host -host_tick_rate 28030590990 # Simulator tick rate (ticks/s) +host_inst_rate 65873683 # Simulator instruction rate (inst/s) +host_mem_usage 463096 # Number of bytes of host memory used +host_seconds 4.19 # Real time elapsed on the host +host_tick_rate 47718011872 # Simulator tick rate (ticks/s) sim_freq 1000000000000 # Frequency of simulated ticks -sim_insts 276189231 # Number of instructions simulated +sim_insts 276082930 # Number of instructions simulated sim_seconds 0.200001 # Number of seconds simulated sim_ticks 200000789468 # Number of ticks simulated testsys.cpu.dtb.accesses 335402 # DTB accesses @@ -188,8 +188,8 @@ testsys.cpu.kern.ipl_good_0 5055 48.15% 48.15% # nu testsys.cpu.kern.ipl_good_21 183 1.74% 49.90% # number of times we switched to this ipl from a different ipl testsys.cpu.kern.ipl_good_22 205 1.95% 51.85% # number of times we switched to this ipl from a different ipl testsys.cpu.kern.ipl_good_31 5055 48.15% 100.00% # number of times we switched to this ipl from a different ipl -testsys.cpu.kern.ipl_ticks 199569923603 # number of cycles we spent at this ipl -testsys.cpu.kern.ipl_ticks_0 199569308033 100.00% 100.00% # number of cycles we spent at this ipl +testsys.cpu.kern.ipl_ticks 199569923816 # number of cycles we spent at this ipl +testsys.cpu.kern.ipl_ticks_0 199569308246 100.00% 100.00% # number of cycles we spent at this ipl testsys.cpu.kern.ipl_ticks_21 30857 0.00% 100.00% # number of cycles we spent at this ipl testsys.cpu.kern.ipl_ticks_22 17630 0.00% 100.00% # number of cycles we spent at this ipl testsys.cpu.kern.ipl_ticks_31 567083 0.00% 100.00% # number of cycles we spent at this ipl @@ -208,9 +208,9 @@ testsys.cpu.kern.mode_switch_good 0.614085 # fr testsys.cpu.kern.mode_switch_good_kernel 0.594545 # fraction of useful protection mode switches testsys.cpu.kern.mode_switch_good_user 1 # fraction of useful protection mode switches testsys.cpu.kern.mode_switch_good_idle 0.013123 # fraction of useful protection mode switches -testsys.cpu.kern.mode_ticks_kernel 1821232 2.16% 2.16% # number of ticks spent at the given mode +testsys.cpu.kern.mode_ticks_kernel 1821166 2.16% 2.16% # number of ticks spent at the given mode testsys.cpu.kern.mode_ticks_user 1065606 1.26% 3.42% # number of ticks spent at the given mode -testsys.cpu.kern.mode_ticks_idle 81403567 96.58% 100.00% # number of ticks spent at the given mode +testsys.cpu.kern.mode_ticks_idle 81403516 96.58% 100.00% # number of ticks spent at the given mode testsys.cpu.kern.swap_context 440 # number of times the context was actually changed testsys.cpu.kern.syscall 83 # number of syscalls executed testsys.cpu.kern.syscall_2 3 3.61% 3.61% # number of syscalls executed @@ -235,8 +235,8 @@ testsys.cpu.kern.syscall_104 1 1.20% 93.98% # nu testsys.cpu.kern.syscall_105 3 3.61% 97.59% # number of syscalls executed testsys.cpu.kern.syscall_118 2 2.41% 100.00% # number of syscalls executed testsys.cpu.not_idle_fraction 0.000001 # Percentage of non-idle cycles -testsys.cpu.numCycles 3566237 # number of cpu cycles simulated -testsys.cpu.num_insts 3564671 # Number of instructions executed +testsys.cpu.numCycles 3566149 # number of cpu cycles simulated +testsys.cpu.num_insts 3564583 # Number of instructions executed testsys.cpu.num_refs 1173698 # Number of memory references testsys.disk0.dma_read_bytes 0 # Number of bytes transfered via DMA reads (not PRD). testsys.disk0.dma_read_full_pages 0 # Number of full page size DMA reads (not PRD). @@ -357,10 +357,10 @@ drivesys.tsunami.ethernet.coalescedRxIdle <err: div-0> # a drivesys.tsunami.ethernet.coalescedRxOk <err: div-0> # average number of RxOk's coalesced into each post drivesys.tsunami.ethernet.coalescedRxOrn <err: div-0> # average number of RxOrn's coalesced into each post drivesys.tsunami.ethernet.coalescedSwi <err: div-0> # average number of Swi's coalesced into each post -drivesys.tsunami.ethernet.coalescedTotal <err: div-0> # average number of interrupts coalesced into each post -drivesys.tsunami.ethernet.coalescedTxDesc <err: div-0> # average number of TxDesc's coalesced into each post -drivesys.tsunami.ethernet.coalescedTxIdle <err: div-0> # average number of TxIdle's coalesced into each post -drivesys.tsunami.ethernet.coalescedTxOk <err: div-0> # average number of TxOk's coalesced into each post +drivesys.tsunami.ethernet.coalescedTotal no value # average number of interrupts coalesced into each post +drivesys.tsunami.ethernet.coalescedTxDesc no value # average number of TxDesc's coalesced into each post +drivesys.tsunami.ethernet.coalescedTxIdle no value # average number of TxIdle's coalesced into each post +drivesys.tsunami.ethernet.coalescedTxOk no value # average number of TxOk's coalesced into each post drivesys.tsunami.ethernet.descDMAReads 0 # Number of descriptors the device read w/ DMA drivesys.tsunami.ethernet.descDMAWrites 0 # Number of descriptors the device wrote w/ DMA drivesys.tsunami.ethernet.descDmaReadBytes 0 # number of descriptor bytes read w/ DMA @@ -383,12 +383,12 @@ drivesys.tsunami.ethernet.totalSwi 0 # to drivesys.tsunami.ethernet.totalTxDesc 0 # total number of TxDesc written to ISR drivesys.tsunami.ethernet.totalTxIdle 0 # total number of TxIdle written to ISR drivesys.tsunami.ethernet.totalTxOk 0 # total number of TxOk written to ISR -host_inst_rate 75502796884 # Simulator instruction rate (inst/s) -host_mem_usage 411152 # Number of bytes of host memory used +host_inst_rate 145844125726 # Simulator instruction rate (inst/s) +host_mem_usage 463096 # Number of bytes of host memory used host_seconds 0.00 # Real time elapsed on the host -host_tick_rate 201377914 # Simulator tick rate (ticks/s) +host_tick_rate 385283333 # Simulator tick rate (ticks/s) sim_freq 1000000000000 # Frequency of simulated ticks -sim_insts 276189231 # Number of instructions simulated +sim_insts 276082930 # Number of instructions simulated sim_seconds 0.000001 # Number of seconds simulated sim_ticks 785978 # Number of ticks simulated testsys.cpu.dtb.accesses 0 # DTB accesses @@ -417,10 +417,10 @@ testsys.cpu.kern.mode_good_idle 0 testsys.cpu.kern.mode_switch_kernel 0 # number of protection mode switches testsys.cpu.kern.mode_switch_user 0 # number of protection mode switches testsys.cpu.kern.mode_switch_idle 0 # number of protection mode switches -testsys.cpu.kern.mode_switch_good no value # fraction of useful protection mode switches -testsys.cpu.kern.mode_switch_good_kernel no value # fraction of useful protection mode switches -testsys.cpu.kern.mode_switch_good_user no value # fraction of useful protection mode switches -testsys.cpu.kern.mode_switch_good_idle no value # fraction of useful protection mode switches +testsys.cpu.kern.mode_switch_good <err: div-0> # fraction of useful protection mode switches +testsys.cpu.kern.mode_switch_good_kernel <err: div-0> # fraction of useful protection mode switches +testsys.cpu.kern.mode_switch_good_user <err: div-0> # fraction of useful protection mode switches +testsys.cpu.kern.mode_switch_good_idle <err: div-0> # fraction of useful protection mode switches testsys.cpu.kern.mode_ticks_kernel 0 # number of ticks spent at the given mode testsys.cpu.kern.mode_ticks_user 0 # number of ticks spent at the given mode testsys.cpu.kern.mode_ticks_idle 0 # number of ticks spent at the given mode @@ -446,10 +446,10 @@ testsys.tsunami.ethernet.coalescedRxIdle <err: div-0> # av testsys.tsunami.ethernet.coalescedRxOk <err: div-0> # average number of RxOk's coalesced into each post testsys.tsunami.ethernet.coalescedRxOrn <err: div-0> # average number of RxOrn's coalesced into each post testsys.tsunami.ethernet.coalescedSwi <err: div-0> # average number of Swi's coalesced into each post -testsys.tsunami.ethernet.coalescedTotal <err: div-0> # average number of interrupts coalesced into each post -testsys.tsunami.ethernet.coalescedTxDesc <err: div-0> # average number of TxDesc's coalesced into each post -testsys.tsunami.ethernet.coalescedTxIdle <err: div-0> # average number of TxIdle's coalesced into each post -testsys.tsunami.ethernet.coalescedTxOk <err: div-0> # average number of TxOk's coalesced into each post +testsys.tsunami.ethernet.coalescedTotal no value # average number of interrupts coalesced into each post +testsys.tsunami.ethernet.coalescedTxDesc no value # average number of TxDesc's coalesced into each post +testsys.tsunami.ethernet.coalescedTxIdle no value # average number of TxIdle's coalesced into each post +testsys.tsunami.ethernet.coalescedTxOk no value # average number of TxOk's coalesced into each post testsys.tsunami.ethernet.descDMAReads 0 # Number of descriptors the device read w/ DMA testsys.tsunami.ethernet.descDMAWrites 0 # Number of descriptors the device wrote w/ DMA testsys.tsunami.ethernet.descDmaReadBytes 0 # number of descriptor bytes read w/ DMA diff --git a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stderr b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stderr index 3aa8423b9..0be24123b 100644 --- a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stderr +++ b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stderr @@ -1,6 +1,6 @@ - 0: testsys.tsunami.io.rtc: Real-time clock set to Sun Jan 1 00:00:00 2006 + 0: testsys.tsunami.io.rtc: Real-time clock set to Thu Jan 1 00:00:00 2009 Listening for console connection on port 3456 - 0: drivesys.tsunami.io.rtc: Real-time clock set to Sun Jan 1 00:00:00 2006 + 0: drivesys.tsunami.io.rtc: Real-time clock set to Thu Jan 1 00:00:00 2009 Listening for console connection on port 3457 0: testsys.remote_gdb.listener: listening for remote gdb #0 on port 7000 0: drivesys.remote_gdb.listener: listening for remote gdb #1 on port 7001 diff --git a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stdout b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stdout index 183b4bb4e..e529ca1ae 100644 --- a/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stdout +++ b/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stdout @@ -5,10 +5,10 @@ The Regents of The University of Michigan All Rights Reserved -M5 compiled Nov 29 2006 16:48:25 -M5 started Sat Dec 2 11:01:31 2006 -M5 executing on zed.eecs.umich.edu -command line: build/ALPHA_FS/m5.opt -d build/ALPHA_FS/tests/opt/quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic tests/run.py quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic -Resetting stats at cycle 4093398828306! -Resetting stats at cycle 4293399617774! -Exiting @ tick 4293400403752 because checkpoint +M5 compiled Jan 25 2007 15:05:30 +M5 started Thu Jan 25 15:12:40 2007 +M5 executing on zeep +command line: /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/m5.opt -d /n/zeep/y/binkertn/build/rtc/build/ALPHA_FS/tests/opt/quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic tests/run.py quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic +Resetting stats at cycle 4093398828093! +Resetting stats at cycle 4293399617561! +Exiting @ tick 4293400403539 because checkpoint |