arm: Add TLB PMU probes

This changeset adds probe points that can be used to implement PMU
counters for TLB stats. The following probes are supported:

* ArmISA::TLB::ppRefills / TLB Refills (TLB insertions)
This commit is contained in:
Andreas Sandberg 2014-10-16 05:49:41 -04:00
parent 76b0ff9ecd
commit 9d35d48e84
2 changed files with 13 additions and 0 deletions

View file

@ -197,6 +197,7 @@ TLB::insert(Addr addr, TlbEntry &entry)
table[0] = entry;
inserts++;
ppRefills->notify(1);
}
void
@ -531,6 +532,12 @@ TLB::regStats()
accesses = readAccesses + writeAccesses + instAccesses;
}
void
TLB::regProbePoints()
{
ppRefills.reset(new ProbePoints::PMU(getProbeManager(), "Refills"));
}
Fault
TLB::translateSe(RequestPtr req, ThreadContext *tc, Mode mode,
Translation *translation, bool &delay, bool timing)

View file

@ -53,6 +53,7 @@
#include "mem/request.hh"
#include "params/ArmTLB.hh"
#include "sim/fault_fwd.hh"
#include "sim/probe/pmu.hh"
#include "sim/tlb.hh"
class ThreadContext;
@ -131,6 +132,9 @@ class TLB : public BaseTLB
Stats::Formula misses;
Stats::Formula accesses;
/** PMU probe for TLB refills */
ProbePoints::PMUUPtr ppRefills;
int rangeMRU; //On lookup, only move entries ahead when outside rangeMRU
bool bootUncacheability;
@ -291,6 +295,8 @@ class TLB : public BaseTLB
void regStats();
void regProbePoints() M5_ATTR_OVERRIDE;
/**
* Get the table walker master port. This is used for migrating
* port connections during a CPU takeOverFrom() call. For