commit | 1afda6bbb6db0e266795af3229b962c32775b928 | [log] [tgz] |
---|---|---|
author | Yong Li <yong.b.li@linux.intel.com> | Thu Apr 09 19:24:13 2020 +0800 |
committer | Yong Li <yong.b.li@intel.com> | Tue Apr 21 01:13:55 2020 +0000 |
tree | f6a378c0f087111813900c4435f00a489c492a9f | |
parent | bf8b1dadc117e93c1c9e328c8f3f7236483ee7f7 [diff] |
adcsensor: Check if the object is still valid in the async callback functions Sometimes adcsesnor will crash during stress test. The root cause is that the object is destroyed already when the async callback functions are executed. The timer cancel() cannot cancel the expired callback handlers. When the callback handler is executed, the object is deleted already. The buffer used by async_read_util must guarantee that they remain valid until the handler is called. Using the weak_ptr to check if the object is still valid before using these member variables/functions. Tested: No adcsensor crash with stress test, Change the threshold of ADC sensor 0x51 P3VBAT: while [ true ]; do; \ ipmitool raw 4 0x26 0x51 0x1b 0x20 0x1b 0 0x2a 0x2a 0;\ ipmitool raw 4 0x26 0x51 0x1b 0x20 0x1b 0 0x2a 0x2b 0;\ sleep 1; done Signed-off-by: Yong Li <yong.b.li@linux.intel.com> Change-Id: I2ddb934199e2d0f52a1a6df25c46eadfe06cfda3
dbus-sensors is a collection of sensor applications that provide the xyz.openbmc_project.Sensor collection of interfaces. They read sensor values from hwmon, d-bus, or direct driver access to provide readings. Some advance non-sensor features such as fan presence, pwm control, and automatic cpu detection (x86) are also supported.
runtime re-configurable from d-bus (entity-manager or the like)
isolated: each sensor type is isolated into its own daemon, so a bug in one sensor is unlikely to affect another, and single sensor modifications are possible
async single-threaded: uses sdbusplus/asio bindings
multiple data inputs: hwmon, d-bus, direct driver access