Try to strace the process. Either attach strace or modify service file to run the strace from the beginning.
To attach simply (replace $HWMON_PID with appropriate pid):
# strace -fv -tt -etrace=file -p $HWMON_PID -s 2048 -o /tmp/hwmon.log.$$
You should include "strace" package in the image by either modifying the build/conf/local.conf and place / append the variable:
======= cut =======
IMAGE_INSTALL_append = " strace"
======= cut =======
Please note the space before the package name. It is required.
To modify service file, simply edit either source file:
in your local build tree or edit service file after booting the image using "vi":
# vi /lib/systemd/system/xyz.openbmc_project.Hwmon\@.service
and change ExecStart param to:
======== cut ========
ExecParam=/usr/bin/strace -tt -etrace=file -fv -s 2048 -o /tmp/hwmon.log.$$ /usr/bin/phosphor-hwmon-readd -o %I
======== cut ========
Then reload systemd and restart the service:
# systemctl daemon-reload
# systemctl restart xyz.openbmc_project.Hwmon\@.service
And then check the /tmp/hwmon.log.* file.
With the "-tt" option you will get a precise timestamp between each syscall.
If there is nothing suspicious, try to remove the "-etrace=file" option.