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.

Screen Shot 2020-10-03 at 11.32.36 AM.png
--
Nguyen Minh Chanh
Embedded Software Engineer