From 8561c8366c7c9afd7e6b52b6e2385b3c1dde95a9 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Thu, 25 Jan 2007 13:43:46 -0500 Subject: [PATCH 1/7] fix smul and sdiv to sign extend, and handle overflow/underflow corretly Only allow writing/reading of 32 bits of Y Only allow writing/reading 32 bits of pc when pstate.am Put any loaded data on the first half of a micro-op in uReg0 so it can't overwrite the register we are using for address calculation only erase a entry from the lookup table if it's valid Put in a temporary check to make sure that lookup table and tlb array stay in sync if we are interrupted in the middle of a mico-op, reset the micropc/nexpc so we start on the first part of it when we come back src/arch/sparc/isa/decoder.isa: fix smul and sdiv to sign extend, and handle overflow/underflow corretly Only allow writing/reading of 32 bits of Y Only allow writing/reading 32 bits of pc when pstate.am Put any loaded data on the first half of a micro-op in uReg0 so it can't overwrite the register we are using for address calculation src/arch/sparc/isa/formats/mem/blockmem.isa: Put any loaded data on the first half of a micro-op in uReg0 so it can't overwrite the register we are using for address calculation src/arch/sparc/isa/includes.isa: Use limits for 32bit underflow/overflow detection src/arch/sparc/tlb.cc: only erase a entry from the lookup table if it's valid Put in a temporary check to make sure that lookup table and tlb array stay in sync src/arch/sparc/tlb_map.hh: add a print function to dump the tlb lookup table src/cpu/simple/base.cc: if we are interrupted in the middle of a mico-op, reset the micropc/nexpc so we start on the first part of it when we come back --HG-- extra : convert_revision : 50a23837fd888393a5c2aa35cbd1abeebb7f55d4 --- src/arch/sparc/isa/decoder.isa | 64 +++++++++++---------- src/arch/sparc/isa/formats/mem/blockmem.isa | 6 +- src/arch/sparc/isa/includes.isa | 3 +- src/arch/sparc/tlb.cc | 7 ++- src/arch/sparc/tlb_map.hh | 13 +++++ src/cpu/simple/base.cc | 2 + 6 files changed, 58 insertions(+), 37 deletions(-) diff --git a/src/arch/sparc/isa/decoder.isa b/src/arch/sparc/isa/decoder.isa index 548953982..425ebc9d0 100644 --- a/src/arch/sparc/isa/decoder.isa +++ b/src/arch/sparc/isa/decoder.isa @@ -186,7 +186,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) * sext<32>(Rs2_or_imm13); Y = Rd.sdw<63:32>; }}); 0x0C: subc({{Rd.sdw = Rs1.sdw + (~Rs2_or_imm13) + 1 - Ccr<0:0>}}); @@ -209,10 +209,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::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::min()) + Rd.udw = ULL(0xFFFFFFFF80000000); } }}); } @@ -257,7 +257,7 @@ decode OP default Unknown::unknown() {{0}},{{0}},{{0}},{{0}}); 0x1B: smulcc({{ int64_t resTemp; - Rd = resTemp = Rs1.sdw<31:0> * Rs2_or_imm13.sdw<31:0>; + Rd = resTemp = sext<32>(Rs1.sdw) * sext<32>(Rs2_or_imm13); Y = resTemp<63:32>;}}, {{0}},{{0}},{{0}},{{0}}); 0x1C: subccc({{ @@ -296,10 +296,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::max()); + underflow = ((int64_t)Rd <= std::numeric_limits::min()); if(overflow) Rd = 0x7FFFFFFF; - else if(underflow) Rd = 0xFFFFFFFF80000000ULL; + else if(underflow) Rd = ULL(0xFFFFFFFF80000000); } }}, {{0}}, {{overflow || underflow}}, @@ -376,7 +376,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;}}); @@ -526,7 +526,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;}}); @@ -882,7 +882,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; @@ -1058,13 +1058,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}}); @@ -1072,34 +1073,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>; @@ -1120,13 +1121,14 @@ 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;}}); 0x21: decode X { diff --git a/src/arch/sparc/isa/formats/mem/blockmem.isa b/src/arch/sparc/isa/formats/mem/blockmem.isa index 32421a75f..c36fede2e 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', pcedCode, opt_flags, {"ea_code": addrCalcReg, "fault_check": faultCode, "micro_pc": microPc, diff --git a/src/arch/sparc/isa/includes.isa b/src/arch/sparc/isa/includes.isa index 624afb693..0c112d481 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 @@ -63,6 +63,7 @@ output exec {{ #if defined(linux) #include #endif +#include #include "arch/sparc/asi.hh" #include "cpu/base.hh" diff --git a/src/arch/sparc/tlb.cc b/src/arch/sparc/tlb.cc index 0e59f3e15..bf57c894f 100644 --- a/src/arch/sparc/tlb.cc +++ b/src/arch/sparc/tlb.cc @@ -170,8 +170,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); DPRINTF(TLB, "Using entry: %#X\n", new_entry); @@ -582,6 +582,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/cpu/simple/base.cc b/src/cpu/simple/base.cc index ddccc5a9b..14fefe103 100644 --- a/src/cpu/simple/base.cc +++ b/src/cpu/simple/base.cc @@ -439,6 +439,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()) { From 73dd0ea35716b90c8448d729273cc153888a223b Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Thu, 25 Jan 2007 14:59:41 -0500 Subject: [PATCH 2/7] Instead of passing an int to represent time between python and C++ pass the tuple of python's struct_time and interpret that. Fixes a problem where the local timezone leaked into the time calculation. Also fix things so that the unix, python, and RTC data sheets all get the right time. Provide both years since 1900 and BCD two digit year. Put the date back at 1/1/2006 for now. --HG-- extra : convert_revision : 473244572f468de2cb579a3dd7ae296a6f81f5d7 --- src/dev/alpha/tsunami_io.cc | 82 +++++++++++++++++++++++++++----- src/dev/alpha/tsunami_io.hh | 13 ++++- src/python/m5/objects/Tsunami.py | 4 +- src/python/m5/params.py | 70 ++++++++++++++------------- 4 files changed, 121 insertions(+), 48 deletions(-) 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 &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)); - DPRINTFN("Real-time clock set to %s", asctime(&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; + + 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 frequency; SimObjectParam platform; SimObjectParam system; - Param time; + VectorParam time; + Param year_is_bcd; SimObjectParam 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 &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 init_time; + bool year_is_bcd; }; + protected: const Params *params() const { return (const Params*)_params; } diff --git a/src/python/m5/objects/Tsunami.py b/src/python/m5/objects/Tsunami.py index 18a776a7f..3d8e6dd04 100644 --- a/src/python/m5/objects/Tsunami.py +++ b/src/python/m5/objects/Tsunami.py @@ -13,8 +13,10 @@ class TsunamiCChip(BasicPioDevice): class TsunamiIO(BasicPioDevice): type = 'TsunamiIO' - time = Param.Time('01/01/2009', + time = Param.Time('01/01/2006', "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 -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"] +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"] - for string in strings: - try: - return time.strptime(value, string) - except ValueError: - pass + +def parse_time(value): + 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 From cf7294250669e098e4ca47629afbbc6b52b6fb4c Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Thu, 25 Jan 2007 19:14:05 -0500 Subject: [PATCH 3/7] Move time forward to Jan 1, 2009 and update stats --HG-- extra : convert_revision : 9398362237443dc659f423a342bd27c923e90aea --- src/python/m5/objects/Tsunami.py | 2 +- .../tsunami-simple-atomic-dual/config.ini | 151 +++++++-- .../tsunami-simple-atomic-dual/config.out | 151 +++++++-- .../tsunami-simple-atomic-dual/m5stats.txt | 80 ++--- .../linux/tsunami-simple-atomic-dual/stderr | 8 +- .../linux/tsunami-simple-atomic-dual/stdout | 10 +- .../linux/tsunami-simple-atomic/config.ini | 150 +++++++-- .../linux/tsunami-simple-atomic/config.out | 150 +++++++-- .../linux/tsunami-simple-atomic/m5stats.txt | 84 ++--- .../alpha/linux/tsunami-simple-atomic/stderr | 2 +- .../alpha/linux/tsunami-simple-atomic/stdout | 10 +- .../tsunami-simple-timing-dual/config.ini | 151 +++++++-- .../tsunami-simple-timing-dual/config.out | 151 +++++++-- .../tsunami-simple-timing-dual/m5stats.txt | 114 +++---- .../linux/tsunami-simple-timing-dual/stderr | 8 +- .../linux/tsunami-simple-timing-dual/stdout | 10 +- .../linux/tsunami-simple-timing/config.ini | 150 +++++++-- .../linux/tsunami-simple-timing/config.out | 150 +++++++-- .../linux/tsunami-simple-timing/m5stats.txt | 102 +++--- .../alpha/linux/tsunami-simple-timing/stderr | 2 +- .../alpha/linux/tsunami-simple-timing/stdout | 10 +- .../twosys-tsunami-simple-atomic/config.ini | 296 +++++++++++++++--- .../twosys-tsunami-simple-atomic/config.out | 296 +++++++++++++++--- .../twosys-tsunami-simple-atomic/m5stats.txt | 64 ++-- .../linux/twosys-tsunami-simple-atomic/stderr | 4 +- .../linux/twosys-tsunami-simple-atomic/stdout | 14 +- 26 files changed, 1766 insertions(+), 554 deletions(-) diff --git a/src/python/m5/objects/Tsunami.py b/src/python/m5/objects/Tsunami.py index 3d8e6dd04..85105ff20 100644 --- a/src/python/m5/objects/Tsunami.py +++ b/src/python/m5/objects/Tsunami.py @@ -13,7 +13,7 @@ class TsunamiCChip(BasicPioDevice): class TsunamiIO(BasicPioDevice): type = 'TsunamiIO' - time = Param.Time('01/01/2006', + 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") 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 # 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 # average number of RxDesc's coalesced into each post system.tsunami.ethernet.coalescedRxIdle # average number of RxIdle's coalesced into each post system.tsunami.ethernet.coalescedRxOk # average number of RxOk's coalesced into each post system.tsunami.ethernet.coalescedRxOrn # 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 # av system.tsunami.ethernet.coalescedRxOk # average number of RxOk's coalesced into each post system.tsunami.ethernet.coalescedRxOrn # average number of RxOrn's coalesced into each post system.tsunami.ethernet.coalescedSwi # average number of Swi's coalesced into each post -system.tsunami.ethernet.coalescedTotal # 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 # average number of TxDesc's coalesced into each post system.tsunami.ethernet.coalescedTxIdle # average number of TxIdle's coalesced into each post system.tsunami.ethernet.coalescedTxOk # 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 # 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 # av system.tsunami.ethernet.coalescedRxOk # average number of RxOk's coalesced into each post system.tsunami.ethernet.coalescedRxOrn # average number of RxOrn's coalesced into each post system.tsunami.ethernet.coalescedSwi # average number of Swi's coalesced into each post -system.tsunami.ethernet.coalescedTotal # 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 # average number of TxDesc's coalesced into each post system.tsunami.ethernet.coalescedTxIdle # average number of TxIdle's coalesced into each post system.tsunami.ethernet.coalescedTxOk # 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 # average number of RxDesc's coalesced into each post system.tsunami.ethernet.coalescedRxIdle # average number of RxIdle's coalesced into each post system.tsunami.ethernet.coalescedRxOk # 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 # average number of RxOrn's coalesced into each post system.tsunami.ethernet.coalescedSwi # average number of Swi's coalesced into each post -system.tsunami.ethernet.coalescedTotal # 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 # average number of TxDesc's coalesced into each post system.tsunami.ethernet.coalescedTxIdle # average number of TxIdle's coalesced into each post system.tsunami.ethernet.coalescedTxOk # 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 # a drivesys.tsunami.ethernet.coalescedRxOk # average number of RxOk's coalesced into each post drivesys.tsunami.ethernet.coalescedRxOrn # average number of RxOrn's coalesced into each post drivesys.tsunami.ethernet.coalescedSwi # average number of Swi's coalesced into each post -drivesys.tsunami.ethernet.coalescedTotal # average number of interrupts coalesced into each post -drivesys.tsunami.ethernet.coalescedTxDesc # average number of TxDesc's coalesced into each post -drivesys.tsunami.ethernet.coalescedTxIdle # average number of TxIdle's coalesced into each post -drivesys.tsunami.ethernet.coalescedTxOk # 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 # fraction of useful protection mode switches +testsys.cpu.kern.mode_switch_good_kernel # fraction of useful protection mode switches +testsys.cpu.kern.mode_switch_good_user # fraction of useful protection mode switches +testsys.cpu.kern.mode_switch_good_idle # 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 # av testsys.tsunami.ethernet.coalescedRxOk # average number of RxOk's coalesced into each post testsys.tsunami.ethernet.coalescedRxOrn # average number of RxOrn's coalesced into each post testsys.tsunami.ethernet.coalescedSwi # average number of Swi's coalesced into each post -testsys.tsunami.ethernet.coalescedTotal # average number of interrupts coalesced into each post -testsys.tsunami.ethernet.coalescedTxDesc # average number of TxDesc's coalesced into each post -testsys.tsunami.ethernet.coalescedTxIdle # average number of TxIdle's coalesced into each post -testsys.tsunami.ethernet.coalescedTxOk # 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 From 202d7f62b9ea11e6b72c4b15ff818549ea14f038 Mon Sep 17 00:00:00 2001 From: Lisa Hsu Date: Fri, 26 Jan 2007 12:51:07 -0500 Subject: [PATCH 4/7] eliminate cpu checkInterrupts bool, it is redundant and unnecessary. --HG-- extra : convert_revision : 58e960e5019f944c7ec5606e4b8c93ce42330719 --- src/arch/alpha/ev5.cc | 4 ---- src/arch/sparc/ua2005.cc | 11 +---------- src/cpu/base.cc | 4 +--- src/cpu/base.hh | 1 - src/cpu/o3/alpha/cpu_impl.hh | 3 --- src/cpu/o3/commit_impl.hh | 3 +-- src/cpu/o3/sparc/cpu_impl.hh | 1 - src/cpu/ozone/cpu_impl.hh | 7 ------- src/cpu/ozone/inorder_back_end_impl.hh | 4 +--- src/cpu/simple/base.cc | 3 +-- 10 files changed, 5 insertions(+), 36 deletions(-) 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/ua2005.cc b/src/arch/sparc/ua2005.cc index 6220e6dec..b583da8b0 100644 --- a/src/arch/sparc/ua2005.cc +++ b/src/arch/sparc/ua2005.cc @@ -50,7 +50,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); @@ -80,15 +79,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; @@ -112,7 +105,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: @@ -208,7 +201,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 @@ -232,7 +224,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/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/o3/alpha/cpu_impl.hh b/src/cpu/o3/alpha/cpu_impl.hh index 98fd0699a..980e70fdd 100644 --- a/src/cpu/o3/alpha/cpu_impl.hh +++ b/src/cpu/o3/alpha/cpu_impl.hh @@ -217,8 +217,6 @@ AlphaO3CPU::hwrei(unsigned tid) this->thread[tid]->kernelStats->hwrei(); - this->checkInterrupts = true; - // FIXME: XXX check for interrupts? XXX return NoFault; } @@ -270,7 +268,6 @@ AlphaO3CPU::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 96f094926..483c2f71b 100644 --- a/src/cpu/o3/commit_impl.hh +++ b/src/cpu/o3/commit_impl.hh @@ -671,8 +671,7 @@ DefaultCommit::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 536a620bf..66bf7d1c0 100644 --- a/src/cpu/o3/sparc/cpu_impl.hh +++ b/src/cpu/o3/sparc/cpu_impl.hh @@ -245,7 +245,6 @@ SparcO3CPU::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::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::hwrei() lockAddrList.clear(); thread.kernelStats->hwrei(); - checkInterrupts = true; - // FIXME: XXX check for interrupts? XXX return NoFault; } @@ -704,7 +698,6 @@ OzoneCPU::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::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::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..9e5dfe2a6 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); } } From 63fdabf191b8ac1031fb25da61ab2526d4bb6d05 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Fri, 26 Jan 2007 18:48:51 -0500 Subject: [PATCH 5/7] make our code a little more standards compliant pretty close to compiling w/ suns compiler briefly: add dummy return after panic()/fatal() split out flags by compiler vendor include cstring and cmath where appropriate use std namespace for string ops SConstruct: Add code to detect compiler and choose cflags based on detected compiler Fix zlib check to work with suncc src/SConscript: split out flags by compiler vendor src/arch/sparc/isa/decoder.isa: use correct namespace for sqrt src/arch/sparc/isa/formats/basic.isa: add dummy return around panic src/arch/sparc/isa/formats/integerop.isa: use correct namespace for stringops src/arch/sparc/isa/includes.isa: include cstring and cmath where appropriate src/arch/sparc/isa_traits.hh: remove dangling comma src/arch/sparc/system.cc: dummy return to make sun cc front end happy src/arch/sparc/tlb.cc: src/base/compression/lzss_compression.cc: use std namespace for string ops src/arch/sparc/utility.hh: no reason to say something is unsigned unsigned int src/base/compression/null_compression.hh: dummy returns to for suncc front end src/base/cprintf.hh: use standard variadic argument syntax instead of gnuc specefic renaming src/base/hashmap.hh: don't need to define hash for suncc src/base/hostinfo.cc: need stdio.h for sprintf src/base/loader/object_file.cc: munmap is in std namespace not null src/base/misc.hh: use M5 generic noreturn macros use standard variadic macro __VA_ARGS__ src/base/pollevent.cc: we need file.h for file flags src/base/random.cc: mess with include files to make suncc happy src/base/remote_gdb.cc: malloc memory for function instead of having a non-constant in an array size src/base/statistics.hh: use std namespace for floor src/base/stats/text.cc: include math.h for rint (cmath won't work) src/base/time.cc: use suncc version of ctime_r src/base/time.hh: change macro to work with both gcc and suncc src/base/timebuf.hh: include cstring from memset and use std:: src/base/trace.hh: change variadic macros to be normal format src/cpu/SConscript: add dummy returns where appropriate src/cpu/activity.cc: include cstring for memset src/cpu/exetrace.hh: include cstring fro memcpy src/cpu/simple/base.hh: add dummy return for panic src/dev/baddev.cc: src/dev/pciconfigall.cc: src/dev/platform.cc: src/dev/sparc/t1000.cc: add dummy return where appropriate src/dev/ide_atareg.h: make define work for both gnuc and suncc src/dev/io_device.hh: add dummy returns where approirate src/dev/pcidev.hh: src/mem/cache/cache_impl.hh: src/mem/cache/miss/blocking_buffer.cc: src/mem/cache/tags/lru.hh: src/mem/cache/tags/split.hh: src/mem/cache/tags/split_lifo.hh: src/mem/cache/tags/split_lru.hh: src/mem/dram.cc: src/mem/packet.cc: src/mem/port.cc: include cstring for string ops src/dev/sparc/mm_disk.cc: add dummy return where appropriate include cstring for string ops src/mem/cache/miss/blocking_buffer.hh: src/mem/port.hh: Add dummy return where appropriate src/mem/cache/tags/iic.cc: cast hastSets to double for log() call src/mem/physical.cc: cast pmemAddr to char* for munmap src/sim/byteswap.hh: make define work for suncc and gnuc --HG-- extra : convert_revision : ef8a1f1064e43b6c39838a85c01aee4f795497bd --- SConstruct | 34 +++++++++++++++--- src/SConscript | 29 ++++++++++----- src/arch/sparc/isa/decoder.isa | 4 +-- src/arch/sparc/isa/formats/basic.isa | 3 +- src/arch/sparc/isa/formats/integerop.isa | 6 ++-- src/arch/sparc/isa/includes.isa | 4 ++- src/arch/sparc/isa_traits.hh | 2 +- src/arch/sparc/system.cc | 1 + src/arch/sparc/tlb.cc | 4 ++- src/arch/sparc/utility.hh | 2 +- src/base/compression/lzss_compression.cc | 6 ++-- src/base/compression/null_compression.hh | 2 ++ src/base/cprintf.hh | 24 ++++++------- src/base/hashmap.hh | 2 +- src/base/hostinfo.cc | 1 + src/base/loader/object_file.cc | 4 +-- src/base/misc.hh | 45 ++++++++++++++---------- src/base/pollevent.cc | 2 +- src/base/random.cc | 13 ++++--- src/base/remote_gdb.cc | 5 ++- src/base/statistics.hh | 5 ++- src/base/stats/text.cc | 4 +++ src/base/time.cc | 4 +++ src/base/time.hh | 2 +- src/base/timebuf.hh | 5 +-- src/base/trace.hh | 28 +++++++-------- src/cpu/SConscript | 8 ++--- src/cpu/activity.cc | 6 ++-- src/cpu/exetrace.hh | 3 +- src/cpu/simple/base.hh | 3 +- src/dev/baddev.cc | 2 ++ src/dev/ide_atareg.h | 2 +- src/dev/io_device.hh | 2 +- src/dev/pciconfigall.cc | 2 ++ src/dev/pcidev.hh | 6 ++-- src/dev/platform.cc | 1 + src/dev/sparc/mm_disk.cc | 5 ++- src/dev/sparc/t1000.cc | 3 ++ src/mem/cache/cache_impl.hh | 31 ++++++++-------- src/mem/cache/miss/blocking_buffer.cc | 9 ++--- src/mem/cache/miss/blocking_buffer.hh | 2 ++ src/mem/cache/tags/iic.cc | 2 +- src/mem/cache/tags/lru.hh | 3 +- src/mem/cache/tags/split.hh | 4 ++- src/mem/cache/tags/split_lifo.hh | 3 +- src/mem/cache/tags/split_lru.hh | 3 +- src/mem/dram.cc | 4 +-- src/mem/packet.cc | 8 ++--- src/mem/physical.cc | 6 ++-- src/mem/port.cc | 3 +- src/mem/port.hh | 8 +++-- src/sim/byteswap.hh | 2 +- 52 files changed, 237 insertions(+), 135 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 229418703..a94682bc0 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/sparc/isa/decoder.isa b/src/arch/sparc/isa/decoder.isa index bd1a44342..bfb8252b9 100644 --- a/src/arch/sparc/isa/decoder.isa +++ b/src/arch/sparc/isa/decoder.isa @@ -685,8 +685,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;}}); diff --git a/src/arch/sparc/isa/formats/basic.isa b/src/arch/sparc/isa/formats/basic.isa index a4c05387b..9805c7c0b 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 } }}; diff --git a/src/arch/sparc/isa/formats/integerop.isa b/src/arch/sparc/isa/formats/integerop.isa index 4f8ebebcc..9470fc55f 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/includes.isa b/src/arch/sparc/isa/includes.isa index 624afb693..688f26d5c 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 #include #include @@ -64,6 +65,7 @@ output exec {{ #include #endif +#include #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 3f0b9cad5..ea15fac10 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 = 33, - Ctrl_Base_DepTag = 97, + Ctrl_Base_DepTag = 97 }; // semantically meaningful register indices diff --git a/src/arch/sparc/system.cc b/src/arch/sparc/system.cc index da83d86fc..800d47c15 100644 --- a/src/arch/sparc/system.cc +++ b/src/arch/sparc/system.cc @@ -195,6 +195,7 @@ bool SparcSystem::breakpoint() { panic("Need to implement"); + M5_DUMMY_RETURN } void diff --git a/src/arch/sparc/tlb.cc b/src/arch/sparc/tlb.cc index 612345300..dc4c9ef1f 100644 --- a/src/arch/sparc/tlb.cc +++ b/src/arch/sparc/tlb.cc @@ -28,6 +28,8 @@ * Authors: Ali Saidi */ +#include + #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]); 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/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 - +#include +#include #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 { 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 #include +#include #include #include #include diff --git a/src/base/loader/object_file.cc b/src/base/loader/object_file.cc index ad2cd34ba..2273b6c4e 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,6 +147,6 @@ 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 +#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 #include -#if defined(__sun__) +#if defined(__sun__) || defined(__SUNPRO_CC) #include #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 +#endif +#ifdef __SUNPRO_CC +#include +#include +#endif + #include #include -#if defined(__sun__) -#include -#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 59a9b87d5..2c0da48f0 100644 --- a/src/base/remote_gdb.cc +++ b/src/base/remote_gdb.cc @@ -610,7 +610,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; @@ -619,6 +619,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()); @@ -916,6 +918,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 #include +#ifdef __SUNPRO_CC +#include +#endif #include #include #include @@ -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 +#endif + #include #include #include 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 +#include #include template @@ -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(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 + #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/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 #include #include @@ -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/simple/base.hh b/src/cpu/simple/base.hh index c39bfa9cd..31fd00977 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/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 -#elif defined(__sun__) +#elif defined(__sun) #include #else #include 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 + #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 + #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 #include +#include #include #include "sim/host.hh" @@ -125,7 +126,7 @@ Cache::handleAccess(PacketPtr &pkt, int & lat, assert(offset < blkSize); assert(pkt->getSize() <= blkSize); assert(offset+pkt->getSize() <= blkSize); - memcpy(blk->data + offset, pkt->getPtr(), + std::memcpy(blk->data + offset, pkt->getPtr(), pkt->getSize()); } else if (!(pkt->flags & SATISFIED)) { pkt->flags |= SATISFIED; @@ -133,7 +134,7 @@ Cache::handleAccess(PacketPtr &pkt, int & lat, assert(offset < blkSize); assert(pkt->getSize() <= blkSize); assert(offset + pkt->getSize() <=blkSize); - memcpy(pkt->getPtr(), blk->data + offset, + std::memcpy(pkt->getPtr(), blk->data + offset, pkt->getSize()); } return blk; @@ -176,7 +177,7 @@ Cache::handleAccess(PacketPtr &pkt, int & lat, if (blk->checkWrite(pkt->req)) { write_data = true; blk->status |= BlkDirty; - memcpy(blk->data + offset, pkt->getPtr(), + std::memcpy(blk->data + offset, pkt->getPtr(), pkt->getSize()); } } else { @@ -184,7 +185,7 @@ Cache::handleAccess(PacketPtr &pkt, int & lat, if (pkt->req->isLocked()) { blk->trackLoadLocked(pkt->req); } - memcpy(pkt->getPtr(), blk->data + offset, + std::memcpy(pkt->getPtr(), blk->data + offset, pkt->getSize()); } @@ -228,7 +229,7 @@ Cache::handleFill(BlkType *blk, PacketPtr &pkt, if (pkt->isRead()) { - memcpy(blk->data, pkt->getPtr(), blkSize); + std::memcpy(blk->data, pkt->getPtr(), blkSize); } blk->whenReady = pkt->finishTime; @@ -249,14 +250,14 @@ Cache::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(), target->getSize()); } } else { if (pkt->req->isLocked()) { blk->trackLoadLocked(pkt->req); } - memcpy(target->getPtr(), + std::memcpy(target->getPtr(), blk->data + target->getOffset(blkSize), target->getSize()); } @@ -285,7 +286,7 @@ Cache::handleFill(BlkType *blk, MSHR * mshr, blk = doReplacement(blk, pkt, new_state, writebacks); if (pkt->isRead()) { - memcpy(blk->data, pkt->getPtr(), blkSize); + std::memcpy(blk->data, pkt->getPtr(), blkSize); } blk->whenReady = pkt->finishTime; @@ -337,14 +338,14 @@ Cache::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(), target->getSize()); } } else { if (pkt->req->isLocked()) { blk->trackLoadLocked(pkt->req); } - memcpy(target->getPtr(), + std::memcpy(target->getPtr(), blk->data + target->getOffset(blkSize), target->getSize()); } @@ -384,7 +385,7 @@ Cache::handleSnoop(BlkType *blk, assert(offset < blkSize); assert(pkt->getSize() <= blkSize); assert(offset + pkt->getSize() <=blkSize); - memcpy(pkt->getPtr(), blk->data + offset, pkt->getSize()); + std::memcpy(pkt->getPtr(), blk->data + offset, pkt->getSize()); handleSnoop(blk, new_state); } @@ -431,7 +432,7 @@ Cache::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(),blk->data,blkSize); + std::memcpy(writeback->getPtr(),blk->data,blkSize); blk->status &= ~BlkDirty; return writeback; @@ -463,7 +464,7 @@ Cache::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::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(), blk->data, blkSize); + std::memcpy(pkt->getPtr(), blk->data, blkSize); PacketList writebacks; handleFill(blk, mshr, new_state, writebacks, pkt); assert(writebacks.empty()); @@ -839,7 +840,7 @@ Cache::snoop(PacketPtr &pkt) assert(offset < blkSize); assert(pkt->getSize() <= blkSize); assert(offset + pkt->getSize() <=blkSize); - memcpy(pkt->getPtr(), mshr->pkt->getPtr() + offset, pkt->getSize()); + std::memcpy(pkt->getPtr(), mshr->pkt->getPtr() + 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 #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(), pkt->getPtr(), blk_size); + std::memcpy(wb.pkt->getPtr(), pkt->getPtr(), 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(), pkt->getPtr(), target->getSize()); + std::memcpy(target->getPtr(), pkt->getPtr(), 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(), data, size); + std::memcpy(pkt->getPtr(), 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(), pkt->getPtr(), pkt->getSize()); + std::memcpy(wb.pkt->getPtr(), pkt->getPtr(), 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 #include #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 #include #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 #include #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 #include #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 #include 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 - +#include #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(), timing->getPtr() + + std::memcpy(func->getPtr(), timing->getPtr() + 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() + (funcStart - timingStart), + std::memcpy(timing->getPtr() + (funcStart - timingStart), func->getPtr(), (std::min(funcEnd, timingEnd) - funcStart) + 1); } else { // timingStart > funcStart - memcpy(timing->getPtr(), + std::memcpy(timing->getPtr(), func->getPtr() + (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 #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/sim/byteswap.hh b/src/sim/byteswap.hh index 7b1ae701e..f8e5215cf 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 -#elif defined (__sun__) +#elif defined (__sun) #include #else #include From 2939d7d061efc8444c06ac52f82c8aeaf0048aaf Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Fri, 26 Jan 2007 18:57:16 -0500 Subject: [PATCH 6/7] Make Sparc traceflag even more chatty some fixes to fp instructions to use the single precision registers if this is an fp op emit fp check code add fpregs to m5legion struct src/arch/sparc/floatregfile.cc: Make Sparc traceflag even more chatty src/arch/sparc/isa/base.isa: add code to check if the fpu is enabled src/arch/sparc/isa/decoder.isa: some fixes to fp instructions to use the single precision registers fix smul again fix subc/subcc/subccc condition code setting src/arch/sparc/isa/formats/basic.isa: src/arch/sparc/isa/formats/mem/util.isa: if this is an fp op emit fp check code src/cpu/exetrace.cc: check fp regs as well as int regs src/cpu/m5legion_interface.h: add fpregs to m5legion struct --HG-- extra : convert_revision : e7d26d10fb8ce88f96e3a51f84b48c3b3ad2f232 --- src/arch/sparc/floatregfile.cc | 6 +++ src/arch/sparc/isa/base.isa | 26 +++++++++++- src/arch/sparc/isa/decoder.isa | 25 ++++++------ src/arch/sparc/isa/formats/basic.isa | 3 +- src/arch/sparc/isa/formats/mem/util.isa | 6 ++- src/cpu/exetrace.cc | 54 +++++++++++++------------ src/cpu/m5legion_interface.h | 5 ++- 7 files changed, 82 insertions(+), 43 deletions(-) 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 4a806bfd0..5b65ec288 100644 --- a/src/arch/sparc/isa/base.isa +++ b/src/arch/sparc/isa/base.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 @@ -290,3 +290,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 425ebc9d0..852fddfcf 100644 --- a/src/arch/sparc/isa/decoder.isa +++ b/src/arch/sparc/isa/decoder.isa @@ -186,7 +186,7 @@ decode OP default Unknown::unknown() Y = Rd<63:32>; }}); 0x0B: smul({{ - Rd.sdw = sext<32>(Rs1.sdw) * sext<32>(Rs2_or_imm13); + 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>}}); @@ -246,8 +246,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: umulcc({{ @@ -257,16 +256,16 @@ decode OP default Unknown::unknown() {{0}},{{0}},{{0}},{{0}}); 0x1B: smulcc({{ int64_t resTemp; - Rd = resTemp = sext<32>(Rs1.sdw) * sext<32>(Rs2_or_imm13); + Rd = resTemp = sext<32>(Rs1.sdw<31:0>) * sext<32>(Rs2_or_imm13<31:0>); Y = resTemp<63:32>;}}, {{0}},{{0}},{{0}},{{0}}); 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: udivxcc({{ @@ -664,7 +663,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 @@ -860,11 +859,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;}}); @@ -1130,14 +1129,14 @@ decode OP default Unknown::unknown() {{ 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;}}); @@ -1145,7 +1144,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 { @@ -1228,7 +1227,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 a4c05387b..db6efd229 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 @@ -71,6 +71,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/mem/util.isa b/src/arch/sparc/isa/formats/mem/util.isa index b6e0945b7..3b02f58de 100644 --- a/src/arch/sparc/isa/formats/mem/util.isa +++ b/src/arch/sparc/isa/formats/mem/util.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 @@ -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; @@ -169,6 +170,7 @@ def template LoadExecute {{ Fault fault = NoFault; Addr EA; uint%(mem_acc_size)s_t Mem; + %(fp_enable_check)s; %(ea_decl)s; %(ea_rd)s; %(ea_code)s; @@ -206,6 +208,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; @@ -235,6 +238,7 @@ def template StoreExecute {{ 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/cpu/exetrace.cc b/src/cpu/exetrace.cc index 26e8b6b44..9ea90681c 100644 --- a/src/cpu/exetrace.cc +++ b/src/cpu/exetrace.cc @@ -293,7 +293,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; @@ -357,10 +358,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++) { @@ -426,12 +432,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) @@ -444,8 +450,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) @@ -588,26 +596,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/m5legion_interface.h b/src/cpu/m5legion_interface.h index c3ba5986e..81714f769 100644 --- a/src/cpu/m5legion_interface.h +++ b/src/cpu/m5legion_interface.h @@ -1,5 +1,5 @@ /* - * 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 @@ -30,7 +30,7 @@ #include -#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]; From de9ac2153ec110143ed2c575d8ac60022836ad58 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Fri, 26 Jan 2007 19:00:17 -0500 Subject: [PATCH 7/7] forgot to include this file --HG-- extra : convert_revision : 4b570a33a951e9286b38873b2be3651ffaee8532 --- src/base/compiler.hh | 52 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/base/compiler.hh 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__