In https://github.com/openbmc/phosphor-hwmon => hwmonio.cpp , I saw we use the std::ifstream to open and read a device sensor.
But, I met an issue with it. In case the sensor was disabled (Ex: the Fan was unplugged), the std::ifstream read will take a long time . The timeout in there is so long. It makes my system have a BIG delay in each checking sensor.
Other observation : In case the sensor device is ready, the time for sensor reading is expected.
Measuring std::ifstream reading:
In case unplugged sensor: 91385 microseconds
In case plugged sensor. : 507 microseconds
The patch to measure the std::ifstream reading, please see attachment !
Unexpected behavior you saw
The timeout in there is so long
Expected behavior
Do we have any better solution in this case? take less more timeout.