@@ -46,6 +46,15 @@ ze_result_t PlatformMonitoringTech::readValue(const std::string key, uint64_t &v
4646 return ZE_RESULT_SUCCESS;
4747}
4848
49+ bool compareTelemNodes (std::string &telemNode1, std::string &telemNode2) {
50+ std::string telem = " telem" ;
51+ auto indexString1 = telemNode1.substr (telem.size (), telemNode1.size ());
52+ auto indexForTelemNode1 = stoi (indexString1);
53+ auto indexString2 = telemNode2.substr (telem.size (), telemNode2.size ());
54+ auto indexForTelemNode2 = stoi (indexString2);
55+ return indexForTelemNode1 < indexForTelemNode2;
56+ }
57+
4958ze_result_t PlatformMonitoringTech::enumerateRootTelemIndex (FsAccess *pFsAccess, std::string &rootPciPathOfGpuDevice) {
5059 std::vector<std::string> listOfTelemNodes;
5160 auto result = pFsAccess->listDirectory (baseTelemSysFS, listOfTelemNodes);
@@ -57,7 +66,7 @@ ze_result_t PlatformMonitoringTech::enumerateRootTelemIndex(FsAccess *pFsAccess,
5766 // # /sys/class/intel_pmt$ ls
5867 // telem1 telem2 telem3
5968 // Then listOfTelemNodes would contain telem1, telem2, telem3
60- std::sort (listOfTelemNodes.begin (), listOfTelemNodes.end ()); // sort listOfTelemNodes, to arange telem nodes in ascending order
69+ std::sort (listOfTelemNodes.begin (), listOfTelemNodes.end (), compareTelemNodes ); // sort listOfTelemNodes, to arange telem nodes in ascending order
6170 for (const auto &telemNode : listOfTelemNodes) {
6271 std::string realPathOfTelemNode;
6372 result = pFsAccess->getRealPath (baseTelemSysFS + " /" + telemNode, realPathOfTelemNode);
0 commit comments