cpusensor: Search in peci-0 directory
The code was searching /sys/bus/peci/devices for PECI sensors.
This results in below directories to be searched on typical 2 socket
x86 systems.
* peci-0
* 0-30
* 0-31
Where 0-30 and 0-31 exist in peci-0 as well.
It is unnecessary, and the files in 0-30 and 0-31 will be searched twice
because they exist in peci-0.
Change the code to search in /sys/bus/peci/devices/peci-0 to make sure
it only search the files within the expected directory.
Note that the current peci driver only create peci-0, this code could be
easily extended to support peci-1/2/3 in the future.
Tested: The time for cpusensor to search the peci sensors reduces from
0.5s to about 0.3s.
Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: I7b0f3ad7bea7a3dced13a985f0ad19ffda33f6d2
diff --git a/src/CPUSensorMain.cpp b/src/CPUSensorMain.cpp
index a352735..9e991e7 100644
--- a/src/CPUSensorMain.cpp
+++ b/src/CPUSensorMain.cpp
@@ -168,9 +168,8 @@
}
std::vector<fs::path> hwmonNamePaths;
- if (!findFiles(fs::path(R"(/sys/bus/peci/devices)"),
- R"(peci-\d+/\d+-.+/peci-.+/hwmon/hwmon\d+/name$)",
- hwmonNamePaths, 6))
+ if (!findFiles(fs::path(R"(/sys/bus/peci/devices/peci-0)"),
+ R"(\d+-.+/peci-.+/hwmon/hwmon\d+/name$)", hwmonNamePaths, 5))
{
std::cerr << "No CPU sensors in system\n";
return true;