From 54854716214515e2a5207163bb01c8dc83bdfef9 Mon Sep 17 00:00:00 2001 From: Junyi Ye <294572668@qq.com> Date: Tue, 23 Apr 2024 12:37:38 +0800 Subject: [PATCH] Modify the traversal logic to prevent the array from crossing boundaries. --- pmu/evt_list.cpp | 20 ++++++++++---------- pmu/evt_list.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pmu/evt_list.cpp b/pmu/evt_list.cpp index 5302a14..c7ee07f 100644 --- a/pmu/evt_list.cpp +++ b/pmu/evt_list.cpp @@ -65,11 +65,11 @@ int KUNPENG_PMU::EvtList::CollectorDoTask(PerfEvtPtr collector, int task) return UNKNOWN_ERROR; } } -int KUNPENG_PMU::EvtList::CollectorXYArrayDoTask(int cpuCnt, int pidCnt, std::vector>& xyArray, int task) +int KUNPENG_PMU::EvtList::CollectorXYArrayDoTask(std::vector>& xyArray, int task) { - for (int row = 0; row < cpuCnt; row++) { - for (int col = 0; col < pidCnt; col++) { - auto err = CollectorDoTask(xyArray[row][col], task); + for (auto row : xyArray) { + for (auto evt : row) { + auto err = CollectorDoTask(evt, task); if (err != SUCCESS) { return err; } @@ -109,22 +109,22 @@ int KUNPENG_PMU::EvtList::Init() int KUNPENG_PMU::EvtList::Start() { - return CollectorXYArrayDoTask(this->numCpu, this->numPid, this->xyCounterArray, START); + return CollectorXYArrayDoTask(this->xyCounterArray, START); } int KUNPENG_PMU::EvtList::Enable() { - return CollectorXYArrayDoTask(this->numCpu, this->numPid, this->xyCounterArray, ENABLE); + return CollectorXYArrayDoTask(this->xyCounterArray, ENABLE); } int KUNPENG_PMU::EvtList::Stop() { - return CollectorXYArrayDoTask(this->numCpu, this->numPid, this->xyCounterArray, STOP); + return CollectorXYArrayDoTask(this->xyCounterArray, STOP); } int KUNPENG_PMU::EvtList::Close() { - auto ret = CollectorXYArrayDoTask(this->numCpu, this->numPid, this->xyCounterArray, CLOSE); + auto ret = CollectorXYArrayDoTask(this->xyCounterArray, CLOSE); if (ret != SUCCESS) { return ret; } @@ -135,7 +135,7 @@ int KUNPENG_PMU::EvtList::Close() int KUNPENG_PMU::EvtList::Reset() { - return CollectorXYArrayDoTask(this->numCpu, this->numPid, this->xyCounterArray, RESET); + return CollectorXYArrayDoTask(this->xyCounterArray, RESET); } void KUNPENG_PMU::EvtList::FillFields( @@ -193,7 +193,7 @@ int KUNPENG_PMU::EvtList::Read(vector &data, std::vector int KUNPENG_PMU::EvtList::Pause() { - return CollectorXYArrayDoTask(this->numCpu, this->numPid, this->xyCounterArray, PAUSE); + return CollectorXYArrayDoTask(this->xyCounterArray, PAUSE); } std::shared_ptr KUNPENG_PMU::EvtList::MapPmuAttr(int cpu, int pid, PmuEvt* pmuEvent) diff --git a/pmu/evt_list.h b/pmu/evt_list.h index a431bb7..ec11735 100644 --- a/pmu/evt_list.h +++ b/pmu/evt_list.h @@ -66,7 +66,7 @@ private: using PerfEvtPtr = std::shared_ptr; int CollectorDoTask(PerfEvtPtr collector, int task); - int CollectorXYArrayDoTask(int numCpu, int numPid, std::vector>& xyArray, int task); + int CollectorXYArrayDoTask(std::vector>& xyArray, int task); void FillFields(const size_t &start, const size_t &end, CpuTopology *cpuTopo, ProcTopology *procTopo, std::vector &pmuData); -- Gitee