diff options
author | Benoit Jacob <benoitjacob@google.com> | 2020-10-08 23:11:18 +0300 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2020-10-08 23:11:41 +0300 |
commit | 3c363dc10d06857ad489c034ebb3bbd6d273dfbd (patch) | |
tree | 9f0e282a077773233b13a4b2290afcd22f77a698 | |
parent | 14569d28154b3f999cd8f4c29b8d6627874682bb (diff) |
Add a few PMU counters.
PiperOrigin-RevId: 336149733
-rw-r--r-- | ruy/pmu.cc | 18 | ||||
-rw-r--r-- | ruy/pmu.h | 2 |
2 files changed, 19 insertions, 1 deletions
@@ -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 @@ -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; |