arch-arm,arch-riscv,arch-x86: Add units to stats

Change-Id: I6bf506c223207306d71511491e024546b209030f
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/39416
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
This commit is contained in:
Hoa Nguyen
2021-01-20 02:15:49 -08:00
parent 4ab768c54e
commit 9625e90b8e
4 changed files with 78 additions and 62 deletions

View File

@@ -2317,25 +2317,31 @@ TableWalker::pageSizeNtoStatBin(uint8_t N)
TableWalker::TableWalkerStats::TableWalkerStats(Stats::Group *parent)
: Stats::Group(parent),
ADD_STAT(walks, "Table walker walks requested"),
ADD_STAT(walksShortDescriptor, "Table walker walks initiated with"
" short descriptors"),
ADD_STAT(walksLongDescriptor, "Table walker walks initiated with"
" long descriptors"),
ADD_STAT(walksShortTerminatedAtLevel, "Level at which table walker"
" walks with short descriptors terminate"),
ADD_STAT(walksLongTerminatedAtLevel, "Level at which table walker"
" walks with long descriptors terminate"),
ADD_STAT(squashedBefore, "Table walks squashed before starting"),
ADD_STAT(squashedAfter, "Table walks squashed after completion"),
ADD_STAT(walkWaitTime, "Table walker wait (enqueue to first request)"
" latency"),
ADD_STAT(walkServiceTime, "Table walker service (enqueue to completion)"
" latency"),
ADD_STAT(pendingWalks, "Table walker pending requests distribution"),
ADD_STAT(pageSizes, "Table walker page sizes translated"),
ADD_STAT(requestOrigin, "Table walker requests started/completed,"
" data/inst")
ADD_STAT(walks, UNIT_COUNT, "Table walker walks requested"),
ADD_STAT(walksShortDescriptor, UNIT_COUNT,
"Table walker walks initiated with short descriptors"),
ADD_STAT(walksLongDescriptor, UNIT_COUNT,
"Table walker walks initiated with long descriptors"),
ADD_STAT(walksShortTerminatedAtLevel, UNIT_COUNT,
"Level at which table walker walks with short descriptors "
"terminate"),
ADD_STAT(walksLongTerminatedAtLevel, UNIT_COUNT,
"Level at which table walker walks with long descriptors "
"terminate"),
ADD_STAT(squashedBefore, UNIT_COUNT,
"Table walks squashed before starting"),
ADD_STAT(squashedAfter, UNIT_COUNT,
"Table walks squashed after completion"),
ADD_STAT(walkWaitTime, UNIT_TICK,
"Table walker wait (enqueue to first request) latency"),
ADD_STAT(walkServiceTime, UNIT_TICK,
"Table walker service (enqueue to completion) latency"),
ADD_STAT(pendingWalks, UNIT_TICK,
"Table walker pending requests distribution"),
ADD_STAT(pageSizes, UNIT_COUNT,
"Table walker page sizes translated"),
ADD_STAT(requestOrigin, UNIT_COUNT,
"Table walker requests started/completed, data/inst")
{
walksShortDescriptor
.flags(Stats::nozero);

View File

@@ -507,34 +507,43 @@ TLB::takeOverFrom(BaseTLB *_otlb)
TLB::TlbStats::TlbStats(Stats::Group *parent)
: Stats::Group(parent),
ADD_STAT(instHits,"ITB inst hits"),
ADD_STAT(instMisses, "ITB inst misses"),
ADD_STAT(readHits, "DTB read hits"),
ADD_STAT(readMisses, "DTB read misses"),
ADD_STAT(writeHits, "DTB write hits"),
ADD_STAT(writeMisses, "DTB write misses"),
ADD_STAT(inserts, "Number of times an entry is inserted into the TLB"),
ADD_STAT(flushTlb, "Number of times complete TLB was flushed"),
ADD_STAT(flushTlbMva, "Number of times TLB was flushed by MVA"),
ADD_STAT(flushTlbMvaAsid, "Number of times TLB was flushed by MVA & ASID"),
ADD_STAT(flushTlbAsid, "Number of times TLB was flushed by ASID"),
ADD_STAT(flushedEntries, "Number of entries that have been flushed"
" from TLB"),
ADD_STAT(alignFaults, "Number of TLB faults due to alignment"
" restrictions"),
ADD_STAT(prefetchFaults, "Number of TLB faults due to prefetch"),
ADD_STAT(domainFaults, "Number of TLB faults due to domain restrictions"),
ADD_STAT(permsFaults, "Number of TLB faults due to permissions"
" restrictions"),
ADD_STAT(readAccesses, "DTB read accesses", readHits + readMisses),
ADD_STAT(writeAccesses, "DTB write accesses", writeHits + writeMisses),
ADD_STAT(instAccesses, "ITB inst accesses", instHits + instMisses),
ADD_STAT(hits, "Total TLB (inst and data) hits",
readHits + writeHits + instHits),
ADD_STAT(misses, "Total TLB (inst and data) misses",
readMisses + writeMisses + instMisses),
ADD_STAT(accesses, "Total TLB (inst and data) accesses",
readAccesses + writeAccesses + instAccesses)
ADD_STAT(instHits, UNIT_COUNT, "ITB inst hits"),
ADD_STAT(instMisses, UNIT_COUNT, "ITB inst misses"),
ADD_STAT(readHits, UNIT_COUNT, "DTB read hits"),
ADD_STAT(readMisses, UNIT_COUNT, "DTB read misses"),
ADD_STAT(writeHits, UNIT_COUNT, "DTB write hits"),
ADD_STAT(writeMisses, UNIT_COUNT, "DTB write misses"),
ADD_STAT(inserts, UNIT_COUNT,
"Number of times an entry is inserted into the TLB"),
ADD_STAT(flushTlb, UNIT_COUNT, "Number of times complete TLB was flushed"),
ADD_STAT(flushTlbMva, UNIT_COUNT,
"Number of times TLB was flushed by MVA"),
ADD_STAT(flushTlbMvaAsid, UNIT_COUNT,
"Number of times TLB was flushed by MVA & ASID"),
ADD_STAT(flushTlbAsid, UNIT_COUNT,
"Number of times TLB was flushed by ASID"),
ADD_STAT(flushedEntries, UNIT_COUNT,
"Number of entries that have been flushed from TLB"),
ADD_STAT(alignFaults, UNIT_COUNT,
"Number of TLB faults due to alignment restrictions"),
ADD_STAT(prefetchFaults, UNIT_COUNT,
"Number of TLB faults due to prefetch"),
ADD_STAT(domainFaults, UNIT_COUNT,
"Number of TLB faults due to domain restrictions"),
ADD_STAT(permsFaults, UNIT_COUNT,
"Number of TLB faults due to permissions restrictions"),
ADD_STAT(readAccesses, UNIT_COUNT, "DTB read accesses",
readHits + readMisses),
ADD_STAT(writeAccesses, UNIT_COUNT, "DTB write accesses",
writeHits + writeMisses),
ADD_STAT(instAccesses, UNIT_COUNT, "ITB inst accesses",
instHits + instMisses),
ADD_STAT(hits, UNIT_COUNT, "Total TLB (inst and data) hits",
readHits + writeHits + instHits),
ADD_STAT(misses, UNIT_COUNT, "Total TLB (inst and data) misses",
readMisses + writeMisses + instMisses),
ADD_STAT(accesses, UNIT_COUNT, "Total TLB (inst and data) accesses",
readAccesses + writeAccesses + instAccesses)
{
}

View File

@@ -498,16 +498,17 @@ TLB::unserialize(CheckpointIn &cp)
TLB::TlbStats::TlbStats(Stats::Group *parent)
: Stats::Group(parent),
ADD_STAT(read_hits, "read hits"),
ADD_STAT(read_misses, "read misses"),
ADD_STAT(read_accesses, "read accesses"),
ADD_STAT(write_hits, "write hits"),
ADD_STAT(write_misses, "write misses"),
ADD_STAT(write_accesses, "write accesses"),
ADD_STAT(hits, "Total TLB (read and write) hits", read_hits + write_hits),
ADD_STAT(misses, "Total TLB (read and write) misses",
read_misses + write_misses),
ADD_STAT(accesses, "Total TLB (read and write) accesses",
read_accesses + write_accesses)
ADD_STAT(read_hits, UNIT_COUNT, "read hits"),
ADD_STAT(read_misses, UNIT_COUNT, "read misses"),
ADD_STAT(read_accesses, UNIT_COUNT, "read accesses"),
ADD_STAT(write_hits, UNIT_COUNT, "write hits"),
ADD_STAT(write_misses, UNIT_COUNT, "write misses"),
ADD_STAT(write_accesses, UNIT_COUNT, "write accesses"),
ADD_STAT(hits, UNIT_COUNT, "Total TLB (read and write) hits",
read_hits + write_hits),
ADD_STAT(misses, UNIT_COUNT, "Total TLB (read and write) misses",
read_misses + write_misses),
ADD_STAT(accesses, UNIT_COUNT, "Total TLB (read and write) accesses",
read_accesses + write_accesses)
{
}

View File

@@ -520,10 +520,10 @@ TLB::getWalker()
TLB::TlbStats::TlbStats(Stats::Group *parent)
: Stats::Group(parent),
ADD_STAT(rdAccesses, "TLB accesses on read requests"),
ADD_STAT(wrAccesses, "TLB accesses on write requests"),
ADD_STAT(rdMisses, "TLB misses on read requests"),
ADD_STAT(wrMisses, "TLB misses on write requests")
ADD_STAT(rdAccesses, UNIT_COUNT, "TLB accesses on read requests"),
ADD_STAT(wrAccesses, UNIT_COUNT, "TLB accesses on write requests"),
ADD_STAT(rdMisses, UNIT_COUNT, "TLB misses on read requests"),
ADD_STAT(wrMisses, UNIT_COUNT, "TLB misses on write requests")
{
}