From 735f768cc81e8b9cd7e7065e5b4206316a52882c Mon Sep 17 00:00:00 2001 From: Jiasen Huang Date: Tue, 14 Dec 2021 20:42:15 +0800 Subject: [PATCH] mem-cache: Added stats filtering both useful and spanPage prefetch. Change-Id: I2570ee47f064ac999f2dcc813c9e39174a2ad8af Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/54163 Reviewed-by: Daniel Carvalho Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- src/mem/cache/prefetch/queued.cc | 8 +++++++- src/mem/cache/prefetch/queued.hh | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mem/cache/prefetch/queued.cc b/src/mem/cache/prefetch/queued.cc index 597c88a995..da9cbf479e 100644 --- a/src/mem/cache/prefetch/queued.cc +++ b/src/mem/cache/prefetch/queued.cc @@ -210,6 +210,10 @@ Queued::notify(const PacketPtr &pkt, const PrefetchInfo &pfi) if (!samePage(addr_prio.first, pfi.getAddr())) { statsQueued.pfSpanPage += 1; + + if (hasBeenPrefetched(pkt->getAddr(), pkt->isSecure())) { + statsQueued.pfUsefulSpanPage += 1; + } } bool can_cross_page = (tlb != nullptr); @@ -272,7 +276,9 @@ Queued::QueuedStats::QueuedStats(statistics::Group *parent) ADD_STAT(pfRemovedFull, statistics::units::Count::get(), "number of prefetches dropped due to prefetch queue size"), ADD_STAT(pfSpanPage, statistics::units::Count::get(), - "number of prefetches that crossed the page") + "number of prefetches that crossed the page"), + ADD_STAT(pfUsefulSpanPage, statistics::units::Count::get(), + "number of prefetches that is useful and crossed the page") { } diff --git a/src/mem/cache/prefetch/queued.hh b/src/mem/cache/prefetch/queued.hh index 1062630c40..c769b3875a 100644 --- a/src/mem/cache/prefetch/queued.hh +++ b/src/mem/cache/prefetch/queued.hh @@ -185,6 +185,7 @@ class Queued : public Base statistics::Scalar pfRemovedDemand; statistics::Scalar pfRemovedFull; statistics::Scalar pfSpanPage; + statistics::Scalar pfUsefulSpanPage; } statsQueued; public: using AddrPriority = std::pair;