Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/google/ruy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Jacob <benoitjacob@google.com>2020-10-08 23:11:18 +0300
committerCopybara-Service <copybara-worker@google.com>2020-10-08 23:11:41 +0300
commit3c363dc10d06857ad489c034ebb3bbd6d273dfbd (patch)
tree9f0e282a077773233b13a4b2290afcd22f77a698
parent14569d28154b3f999cd8f4c29b8d6627874682bb (diff)
Add a few PMU counters.
PiperOrigin-RevId: 336149733
-rw-r--r--ruy/pmu.cc18
-rw-r--r--ruy/pmu.h2
2 files changed, 19 insertions, 1 deletions
diff --git a/ruy/pmu.cc b/ruy/pmu.cc
index 329929f..d1a60be 100644
--- a/ruy/pmu.cc
+++ b/ruy/pmu.cc
@@ -194,7 +194,9 @@ class PmuEventsPrivate {
l2d_tlb_refill(PERF_TYPE_RAW, arm_pmuv3::L2D_TLB_REFILL),
stall_frontend(PERF_TYPE_RAW, arm_pmuv3::STALL_FRONTEND),
stall_backend(PERF_TYPE_RAW, arm_pmuv3::STALL_BACKEND),
- br_mis_pred(PERF_TYPE_RAW, arm_pmuv3::BR_MIS_PRED) {}
+ br_mis_pred(PERF_TYPE_RAW, arm_pmuv3::BR_MIS_PRED),
+ l1d_cache_writeback(PERF_TYPE_RAW, arm_pmuv3::L1D_CACHE_WB),
+ l2d_cache_writeback(PERF_TYPE_RAW, arm_pmuv3::L2D_CACHE_WB) {}
private:
friend class PmuEvents;
@@ -207,6 +209,8 @@ class PmuEventsPrivate {
PerfEvent stall_frontend;
PerfEvent stall_backend;
PerfEvent br_mis_pred;
+ PerfEvent l1d_cache_writeback;
+ PerfEvent l2d_cache_writeback;
};
PmuEvents::PmuEvents() : priv(new PmuEventsPrivate) {}
@@ -222,6 +226,8 @@ void PmuEvents::StartRecording() {
priv->stall_frontend.Start();
priv->stall_backend.Start();
priv->br_mis_pred.Start();
+ priv->l1d_cache_writeback.Start();
+ priv->l2d_cache_writeback.Start();
}
void PmuEvents::StopRecording() {
@@ -234,6 +240,8 @@ void PmuEvents::StopRecording() {
priv->stall_frontend.Stop();
priv->stall_backend.Stop();
priv->br_mis_pred.Stop();
+ priv->l1d_cache_writeback.Stop();
+ priv->l2d_cache_writeback.Stop();
}
float PmuEvents::BranchMispredictionCount() const {
@@ -278,4 +286,12 @@ float PmuEvents::L2TLBRefillCount() const {
return static_cast<float>(priv->l2d_tlb_refill.Count());
}
+float PmuEvents::L1WritebackCount() const {
+ return static_cast<float>(priv->l1d_cache_writeback.Count());
+}
+
+float PmuEvents::L2WritebackCount() const {
+ return static_cast<float>(priv->l2d_cache_writeback.Count());
+}
+
} // namespace ruy
diff --git a/ruy/pmu.h b/ruy/pmu.h
index d4e2ed2..2d769e2 100644
--- a/ruy/pmu.h
+++ b/ruy/pmu.h
@@ -34,6 +34,8 @@ class PmuEvents {
float BackendStallCount() const;
float L1TLBRefillCount() const;
float L2TLBRefillCount() const;
+ float L1WritebackCount() const;
+ float L2WritebackCount() const;
private:
PmuEventsPrivate* priv = nullptr;