merge from head of m5. note: i did not bother to merge the PIO stuff with scsi since we're not going that route anymore anyway. esp because it was giving me an error i couldn't seem to fix.
dev/alpha_console.cc: missed this >>>> after i merged kern/linux/linux_system.cc: get rid of FS_MEASURES and change FnEvent to LinuxFnEvent kern/linux/linux_system.hh: get rid of FS_MEASURE --HG-- extra : convert_revision : 210f46573bba0c772a224ce110af9a9230fabf6a
This commit is contained in:
parent
3bc8cffc75
commit
256a1ac478
3 changed files with 33 additions and 48 deletions
|
@ -58,7 +58,6 @@ AlphaConsole::AlphaConsole(const string &name, SimConsole *cons, SimpleDisk *d,
|
||||||
int num_cpus, MemoryController *mmu, Addr a,
|
int num_cpus, MemoryController *mmu, Addr a,
|
||||||
HierParams *hier, Bus *bus)
|
HierParams *hier, Bus *bus)
|
||||||
: PioDevice(name), disk(d), console(cons), addr(a)
|
: PioDevice(name), disk(d), console(cons), addr(a)
|
||||||
>>>>>>>
|
|
||||||
{
|
{
|
||||||
mmu->add_child(this, Range<Addr>(addr, addr + size));
|
mmu->add_child(this, Range<Addr>(addr, addr + size));
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,6 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param,
|
||||||
kernelStart = bootloader->textBase();
|
kernelStart = bootloader->textBase();
|
||||||
DPRINTF(Loader, "Bootloader entry at %#x\n", kernelEntry);
|
DPRINTF(Loader, "Bootloader entry at %#x\n", kernelEntry);
|
||||||
|
|
||||||
#ifdef FS_MEASURE
|
|
||||||
//INSTRUMENTATION CODEGEN BEGIN ONE
|
//INSTRUMENTATION CODEGEN BEGIN ONE
|
||||||
if (bin == true) {
|
if (bin == true) {
|
||||||
esIntrBin = new Statistics::MainBin(name() + " es_intr");
|
esIntrBin = new Statistics::MainBin(name() + " es_intr");
|
||||||
|
@ -215,7 +214,6 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param,
|
||||||
|
|
||||||
}
|
}
|
||||||
//INSTRUMENTATION CODEGEN END
|
//INSTRUMENTATION CODEGEN END
|
||||||
#endif //FS_MEASURE
|
|
||||||
|
|
||||||
kernelPanicEvent = new BreakPCEvent(&pcEventQueue, "kernel panic");
|
kernelPanicEvent = new BreakPCEvent(&pcEventQueue, "kernel panic");
|
||||||
consolePanicEvent = new BreakPCEvent(&pcEventQueue, "console panic");
|
consolePanicEvent = new BreakPCEvent(&pcEventQueue, "console panic");
|
||||||
|
@ -238,37 +236,37 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param,
|
||||||
#ifdef FS_MEASURE
|
#ifdef FS_MEASURE
|
||||||
//INSTRUMENTATION CODEGEN BEGIN TWO
|
//INSTRUMENTATION CODEGEN BEGIN TWO
|
||||||
if (bin == true) {
|
if (bin == true) {
|
||||||
esIntrEvent = new FnEvent(&pcEventQueue, "es_intr", this);
|
esIntrEvent = new LinuxFnEvent(&pcEventQueue, "es_intr", this);
|
||||||
esRxeofEvent = new FnEvent(&pcEventQueue, "es_rxeof", this);
|
esRxeofEvent = new LinuxFnEvent(&pcEventQueue, "es_rxeof", this);
|
||||||
esNewbufEvent = new FnEvent(&pcEventQueue, "es_newbuf", this);
|
esNewbufEvent = new LinuxFnEvent(&pcEventQueue, "es_newbuf", this);
|
||||||
esDmaLoadEvent = new FnEvent(&pcEventQueue, "es_dma_load", this);
|
esDmaLoadEvent = new LinuxFnEvent(&pcEventQueue, "es_dma_load", this);
|
||||||
dmaMapLoadEvent = new FnEvent(&pcEventQueue, "dma_map_load", this);
|
dmaMapLoadEvent = new LinuxFnEvent(&pcEventQueue, "dma_map_load", this);
|
||||||
etherInputEvent = new FnEvent(&pcEventQueue, "ether_input", this);
|
etherInputEvent = new LinuxFnEvent(&pcEventQueue, "ether_input", this);
|
||||||
netisrInputEvent = new FnEvent(&pcEventQueue, "netisr_input", this);
|
netisrInputEvent = new LinuxFnEvent(&pcEventQueue, "netisr_input", this);
|
||||||
schednetisrIsrEvent = new FnEvent(&pcEventQueue, "schednetisr_isr", this);
|
schednetisrIsrEvent = new LinuxFnEvent(&pcEventQueue, "schednetisr_isr", this);
|
||||||
ipintrEvent = new FnEvent(&pcEventQueue, "ipintr", this);
|
ipintrEvent = new LinuxFnEvent(&pcEventQueue, "ipintr", this);
|
||||||
ipDooptionsEvent = new FnEvent(&pcEventQueue, "ip_dooptions", this);
|
ipDooptionsEvent = new LinuxFnEvent(&pcEventQueue, "ip_dooptions", this);
|
||||||
ipReassEvent = new FnEvent(&pcEventQueue, "ip_reass", this);
|
ipReassEvent = new LinuxFnEvent(&pcEventQueue, "ip_reass", this);
|
||||||
tcpInputEvent = new FnEvent(&pcEventQueue, "tcp_input", this);
|
tcpInputEvent = new LinuxFnEvent(&pcEventQueue, "tcp_input", this);
|
||||||
sbappendEvent = new FnEvent(&pcEventQueue, "sbappend", this);
|
sbappendEvent = new LinuxFnEvent(&pcEventQueue, "sbappend", this);
|
||||||
readEvent = new FnEvent(&pcEventQueue, "read", this);
|
readEvent = new LinuxFnEvent(&pcEventQueue, "read", this);
|
||||||
sooReadEvent = new FnEvent(&pcEventQueue, "soo_read", this);
|
sooReadEvent = new LinuxFnEvent(&pcEventQueue, "soo_read", this);
|
||||||
orecvEvent = new FnEvent(&pcEventQueue, "orecv", this);
|
orecvEvent = new LinuxFnEvent(&pcEventQueue, "orecv", this);
|
||||||
recvitEvent = new FnEvent(&pcEventQueue, "recvit", this);
|
recvitEvent = new LinuxFnEvent(&pcEventQueue, "recvit", this);
|
||||||
soreceiveEvent = new FnEvent(&pcEventQueue, "soreceive", this);
|
soreceiveEvent = new LinuxFnEvent(&pcEventQueue, "soreceive", this);
|
||||||
osendEvent = new FnEvent(&pcEventQueue, "osend", this);
|
osendEvent = new LinuxFnEvent(&pcEventQueue, "osend", this);
|
||||||
writeEvent = new FnEvent(&pcEventQueue, "write", this);
|
writeEvent = new LinuxFnEvent(&pcEventQueue, "write", this);
|
||||||
sooWriteEvent = new FnEvent(&pcEventQueue, "soo_write", this);
|
sooWriteEvent = new LinuxFnEvent(&pcEventQueue, "soo_write", this);
|
||||||
senditEvent = new FnEvent(&pcEventQueue, "sendit", this);
|
senditEvent = new LinuxFnEvent(&pcEventQueue, "sendit", this);
|
||||||
sosendEvent = new FnEvent(&pcEventQueue, "sosend", this);
|
sosendEvent = new LinuxFnEvent(&pcEventQueue, "sosend", this);
|
||||||
tcpSosendEvent = new FnEvent(&pcEventQueue, "tcp_sosend", this);
|
tcpSosendEvent = new LinuxFnEvent(&pcEventQueue, "tcp_sosend", this);
|
||||||
tcpOutputEvent = new FnEvent(&pcEventQueue, "tcp_output", this);
|
tcpOutputEvent = new LinuxFnEvent(&pcEventQueue, "tcp_output", this);
|
||||||
ipOutputEvent = new FnEvent(&pcEventQueue, "ip_output", this);
|
ipOutputEvent = new LinuxFnEvent(&pcEventQueue, "ip_output", this);
|
||||||
etherOutputEvent = new FnEvent(&pcEventQueue, "ether_output", this);
|
etherOutputEvent = new LinuxFnEvent(&pcEventQueue, "ether_output", this);
|
||||||
esStartEvent = new FnEvent(&pcEventQueue, "es_start", this);
|
esStartEvent = new LinuxFnEvent(&pcEventQueue, "es_start", this);
|
||||||
esTransmitEvent = new FnEvent(&pcEventQueue, "es_transmit", this);
|
esTransmitEvent = new LinuxFnEvent(&pcEventQueue, "es_transmit", this);
|
||||||
esTxeofEvent = new FnEvent(&pcEventQueue, "es_txeof", this);
|
esTxeofEvent = new LinuxFnEvent(&pcEventQueue, "es_txeof", this);
|
||||||
idleThreadEvent = new FnEvent(&pcEventQueue, "idle_thread", this);
|
idleThreadEvent = new LinuxFnEvent(&pcEventQueue, "idle_thread", this);
|
||||||
}
|
}
|
||||||
//INSTRUMENTATION CODEGEN END
|
//INSTRUMENTATION CODEGEN END
|
||||||
#endif //FS_MEASURE
|
#endif //FS_MEASURE
|
||||||
|
@ -659,7 +657,6 @@ LinuxSystem::breakpoint()
|
||||||
return remoteGDB[0]->trap(ALPHA_KENTRY_IF);
|
return remoteGDB[0]->trap(ALPHA_KENTRY_IF);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FS_MEASURE
|
|
||||||
void
|
void
|
||||||
LinuxSystem::populateMap(std::string callee, std::string caller)
|
LinuxSystem::populateMap(std::string callee, std::string caller)
|
||||||
{
|
{
|
||||||
|
@ -701,7 +698,6 @@ LinuxSystem::dumpState(ExecContext *xc) const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif //FS_MEASURE
|
|
||||||
|
|
||||||
BEGIN_DECLARE_SIM_OBJECT_PARAMS(LinuxSystem)
|
BEGIN_DECLARE_SIM_OBJECT_PARAMS(LinuxSystem)
|
||||||
|
|
||||||
|
|
|
@ -34,9 +34,7 @@
|
||||||
#include "sim/system.hh"
|
#include "sim/system.hh"
|
||||||
#include "targetarch/isa_traits.hh"
|
#include "targetarch/isa_traits.hh"
|
||||||
|
|
||||||
#ifdef FS_MEASURE
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#endif
|
|
||||||
|
|
||||||
class ExecContext;
|
class ExecContext;
|
||||||
class ElfObject;
|
class ElfObject;
|
||||||
|
@ -49,9 +47,7 @@ class LinuxSkipDelayLoopEvent;
|
||||||
class LinuxPrintfEvent;
|
class LinuxPrintfEvent;
|
||||||
class LinuxDebugPrintfEvent;
|
class LinuxDebugPrintfEvent;
|
||||||
class LinuxDumpMbufEvent;
|
class LinuxDumpMbufEvent;
|
||||||
#ifdef FS_MEASURE
|
|
||||||
class FnEvent;
|
class FnEvent;
|
||||||
#endif
|
|
||||||
class AlphaArguments;
|
class AlphaArguments;
|
||||||
|
|
||||||
class LinuxSystem : public System
|
class LinuxSystem : public System
|
||||||
|
@ -65,7 +61,7 @@ class LinuxSystem : public System
|
||||||
SymbolTable *bootloaderSymtab;
|
SymbolTable *bootloaderSymtab;
|
||||||
SymbolTable *consoleSymtab;
|
SymbolTable *consoleSymtab;
|
||||||
|
|
||||||
#ifdef FS_MEASURE
|
|
||||||
//INSTRUMENTATION CODEGEN BEGIN ONE
|
//INSTRUMENTATION CODEGEN BEGIN ONE
|
||||||
Statistics::MainBin *esIntrBin;
|
Statistics::MainBin *esIntrBin;
|
||||||
Statistics::MainBin *esRxeofBin;
|
Statistics::MainBin *esRxeofBin;
|
||||||
|
@ -99,7 +95,6 @@ class LinuxSystem : public System
|
||||||
Statistics::MainBin *esTxeofBin;
|
Statistics::MainBin *esTxeofBin;
|
||||||
Statistics::MainBin *idleThreadBin;
|
Statistics::MainBin *idleThreadBin;
|
||||||
//INSTRUMENTATION CODEGEN END
|
//INSTRUMENTATION CODEGEN END
|
||||||
#endif //FS_MEASURE
|
|
||||||
|
|
||||||
BreakPCEvent *kernelPanicEvent;
|
BreakPCEvent *kernelPanicEvent;
|
||||||
BreakPCEvent *consolePanicEvent;
|
BreakPCEvent *consolePanicEvent;
|
||||||
|
@ -111,7 +106,7 @@ class LinuxSystem : public System
|
||||||
LinuxDebugPrintfEvent *debugPrintfEvent;
|
LinuxDebugPrintfEvent *debugPrintfEvent;
|
||||||
LinuxDebugPrintfEvent *debugPrintfrEvent;
|
LinuxDebugPrintfEvent *debugPrintfrEvent;
|
||||||
LinuxDumpMbufEvent *dumpMbufEvent;
|
LinuxDumpMbufEvent *dumpMbufEvent;
|
||||||
#ifdef FS_MEASURE
|
|
||||||
//INSTRUMENTATION CODEGEN BEGIN TWO
|
//INSTRUMENTATION CODEGEN BEGIN TWO
|
||||||
FnEvent *esIntrEvent;
|
FnEvent *esIntrEvent;
|
||||||
FnEvent *esRxeofEvent;
|
FnEvent *esRxeofEvent;
|
||||||
|
@ -145,7 +140,6 @@ class LinuxSystem : public System
|
||||||
FnEvent *esTxeofEvent;
|
FnEvent *esTxeofEvent;
|
||||||
FnEvent *idleThreadEvent;
|
FnEvent *idleThreadEvent;
|
||||||
//INSTRUMENTATION CODEGEN END
|
//INSTRUMENTATION CODEGEN END
|
||||||
#endif //FS_MEASURE
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -154,10 +148,8 @@ class LinuxSystem : public System
|
||||||
Addr kernelEntry;
|
Addr kernelEntry;
|
||||||
bool bin;
|
bool bin;
|
||||||
|
|
||||||
#ifdef FS_MEASURE
|
|
||||||
std::multimap<const std::string, std::string> callerMap;
|
std::multimap<const std::string, std::string> callerMap;
|
||||||
void populateMap(std::string caller, std::string callee);
|
void populateMap(std::string caller, std::string callee);
|
||||||
#endif
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::vector<RemoteGDB *> remoteGDB;
|
std::vector<RemoteGDB *> remoteGDB;
|
||||||
|
@ -189,10 +181,8 @@ class LinuxSystem : public System
|
||||||
static void Printf(AlphaArguments args);
|
static void Printf(AlphaArguments args);
|
||||||
static void DumpMbuf(AlphaArguments args);
|
static void DumpMbuf(AlphaArguments args);
|
||||||
|
|
||||||
#ifdef FS_MEASURE
|
|
||||||
bool findCaller(std::string callee, std::string caller) const;
|
bool findCaller(std::string callee, std::string caller) const;
|
||||||
void dumpState(ExecContext *xc) const;
|
void dumpState(ExecContext *xc) const;
|
||||||
#endif //FS_MEASURE
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __LINUX_SYSTEM_HH__
|
#endif // __LINUX_SYSTEM_HH__
|
||||||
|
|
Loading…
Reference in a new issue