Stats updates.
dev/ide_disk.cc: dev/ide_disk.hh: Add in stats. sim/stat_control.cc: sim/stat_control.hh: Allow setup event to be called with a specific queue. --HG-- extra : convert_revision : 9310b132b70f967a198cb2e646433f3a5332671e
This commit is contained in:
parent
f9f2f8fbd0
commit
9ef831eeef
4 changed files with 48 additions and 6 deletions
|
@ -406,6 +406,39 @@ IdeDisk::regStats()
|
||||||
.name(name() + ".dma_write_txs")
|
.name(name() + ".dma_write_txs")
|
||||||
.desc("Number of DMA write transactions.")
|
.desc("Number of DMA write transactions.")
|
||||||
;
|
;
|
||||||
|
|
||||||
|
rdBandwidth
|
||||||
|
.name(name() + ".rdBandwidth")
|
||||||
|
.desc("Read Bandwidth (bits/s)")
|
||||||
|
.precision(0)
|
||||||
|
.prereq(dmaReadBytes)
|
||||||
|
;
|
||||||
|
|
||||||
|
wrBandwidth
|
||||||
|
.name(name() + ".wrBandwidth")
|
||||||
|
.desc("Write Bandwidth (bits/s)")
|
||||||
|
.precision(0)
|
||||||
|
.prereq(dmaWriteBytes)
|
||||||
|
;
|
||||||
|
|
||||||
|
totBandwidth
|
||||||
|
.name(name() + ".totBandwidth")
|
||||||
|
.desc("Total Bandwidth (bits/s)")
|
||||||
|
.precision(0)
|
||||||
|
.prereq(totBytes)
|
||||||
|
;
|
||||||
|
|
||||||
|
totBytes
|
||||||
|
.name(name() + ".totBytes")
|
||||||
|
.desc("Total Bytes")
|
||||||
|
.precision(0)
|
||||||
|
.prereq(totBytes)
|
||||||
|
;
|
||||||
|
|
||||||
|
rdBandwidth = dmaReadBytes * Stats::constant(8) / simSeconds;
|
||||||
|
wrBandwidth = dmaWriteBytes * Stats::constant(8) / simSeconds;
|
||||||
|
totBandwidth = rdBandwidth + wrBandwidth;
|
||||||
|
totBytes = dmaReadBytes + dmaWriteBytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -244,6 +244,10 @@ class IdeDisk : public SimObject
|
||||||
Stats::Scalar<> dmaWriteFullPages;
|
Stats::Scalar<> dmaWriteFullPages;
|
||||||
Stats::Scalar<> dmaWriteBytes;
|
Stats::Scalar<> dmaWriteBytes;
|
||||||
Stats::Scalar<> dmaWriteTxs;
|
Stats::Scalar<> dmaWriteTxs;
|
||||||
|
Stats::Formula rdBandwidth;
|
||||||
|
Stats::Formula wrBandwidth;
|
||||||
|
Stats::Formula totBandwidth;
|
||||||
|
Stats::Formula totBytes;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -158,13 +158,13 @@ class StatEvent : public Event
|
||||||
Tick repeat;
|
Tick repeat;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
StatEvent(int _flags, Tick _when, Tick _repeat);
|
StatEvent(EventQueue *queue, int _flags, Tick _when, Tick _repeat);
|
||||||
virtual void process();
|
virtual void process();
|
||||||
virtual const char *description();
|
virtual const char *description();
|
||||||
};
|
};
|
||||||
|
|
||||||
StatEvent::StatEvent(int _flags, Tick _when, Tick _repeat)
|
StatEvent::StatEvent(EventQueue *queue, int _flags, Tick _when, Tick _repeat)
|
||||||
: Event(&mainEventQueue, Stat_Event_Pri),
|
: Event(queue, Stat_Event_Pri),
|
||||||
flags(_flags), repeat(_repeat)
|
flags(_flags), repeat(_repeat)
|
||||||
{
|
{
|
||||||
setFlags(AutoDelete);
|
setFlags(AutoDelete);
|
||||||
|
@ -214,9 +214,12 @@ DumpNow()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SetupEvent(int flags, Tick when, Tick repeat)
|
SetupEvent(int flags, Tick when, Tick repeat, EventQueue *queue)
|
||||||
{
|
{
|
||||||
new StatEvent(flags, when, repeat);
|
if (queue == NULL)
|
||||||
|
queue = &mainEventQueue;
|
||||||
|
|
||||||
|
new StatEvent(queue, flags, when, repeat);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* namespace Stats */ }
|
/* namespace Stats */ }
|
||||||
|
|
|
@ -32,6 +32,8 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
|
class EventQueue;
|
||||||
|
|
||||||
namespace Stats {
|
namespace Stats {
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -43,7 +45,7 @@ class Output;
|
||||||
extern std::list<Output *> OutputList;
|
extern std::list<Output *> OutputList;
|
||||||
|
|
||||||
void DumpNow();
|
void DumpNow();
|
||||||
void SetupEvent(int flags, Tick when, Tick repeat = 0);
|
void SetupEvent(int flags, Tick when, Tick repeat = 0, EventQueue *queue = NULL);
|
||||||
|
|
||||||
void InitSimStats();
|
void InitSimStats();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue