<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="moz-cite-prefix">On 12/17/20 05:03, Matthew Barth wrote:<br>
</div>
<blockquote type="cite" cite="mid:c610636d-bf38-4077-edbf-5e0ad727a3ab@linux.ibm.com">
<br>
On 12/16/20 2:03 AM, Thu Nguyen wrote:
<br>
<blockquote type="cite">Hi,
<br>
<br>
<br>
In the current code of phosphor-hwmon, when flag
--enable-update-functional-on-fail is set. The fan functional
DBus property in sensors interface will be set to false when
unplug fans (FAN4_2).
<br>
<br>
~# busctl get-property
xyz.openbmc_project.Hwmon-1644477290.Hwmon1
/xyz/openbmc_project/sensors/fan_tach/FAN4_2
xyz.openbmc_project.State.Decorator.OperationalStatus Functional
<br>
b false
<br>
<br>
AND the fan Value properties will keep the latest reading value
before unplug.
<br>
<br>
~# busctl get-property
xyz.openbmc_project.Hwmon-1644477290.Hwmon1
/xyz/openbmc_project/sensors/fan_tach/FAN4_2
xyz.openbmc_project.Sensor.Value Value
<br>
<br>
d 4794
<br>
<br>
~# busctl get-property
xyz.openbmc_project.Hwmon-1644477290.Hwmon1
/xyz/openbmc_project/sensors/fan_tach/FAN4_2
xyz.openbmc_project.Sensor.Value Value
<br>
d 4794
<br>
<br>
This cause phosphor-fan-monitor failed to detect the fan failure
so the fan functional are wrong.
<br>
<br>
busctl get-property xyz.openbmc_project.Inventory.Manager
/xyz/openbmc_project/inventory/system/chassis/motherboard/FAN4_2
xyz.openbmc_project.State.Decorator.OperationalStatus Functional
<br>
b true
<br>
<br>
Should phosphor-hwmon keep updating the fan value Dbus
properties with error code when the fans is nonfunctional? Or
phosphor-fan-monitor should also check the fan functional in
sensor interface to update fan functional in inventory
interface?
<br>
<br>
</blockquote>
I recall this was something that would be needed in
phosphor-fan-monitor when a fan's sensor is marked faulted since
the value should no longer be trusted by phosphor-fan-monitor. A
phosphor-fan-monitor configuration option needs to be added per
fan sensor to check the sensor's functional property and use that
to update the fan's functional state in inventory as well.
<br>
<br>
Please feel free to submit a patch to add this configuration
option to drive setting the fan's functional state in inventory
based on the state of a fan sensor's functional state.
<br>
<br>
<br>
Matt
<br>
<br>
<blockquote type="cite">
<br>
Regards.
<br>
<br>
Thu Nguyen.
<br>
<br>
<br>
<br>
</blockquote>
</blockquote>
<p>How about Fan Present property? Should we update it to false when
fan sensor functional is false?</p>
<p>I think we can add option "fan_sensor_func_to_fan_inventory_func"
in fan configuration as below:</p>
<div style="color: #d4d4d4;background-color: #1e1e1e;font-family: Menlo, Monaco, 'Courier New', monospace;font-weight: normal;font-size: 18px;line-height: 27px;white-space: pre;"><div><span style="color: #d4d4d4;"> - </span><span style="color: #569cd6;">inventory</span><span style="color: #d4d4d4;">: </span><span style="color: #ce9178;">/system/chassis/motherboard/FAN3_1</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">allowed_out_of_range_time</span><span style="color: #d4d4d4;">: </span><span style="color: #b5cea8;">30</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">deviation</span><span style="color: #d4d4d4;">: </span><span style="color: #b5cea8;">15</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">num_sensors_nonfunc_for_fan_nonfunc</span><span style="color: #d4d4d4;">: </span><span style="color: #b5cea8;">1</span></div><div><span style="color: #d4d4d4;"> fan_</span><span style="color: #569cd6;">sensor_func_to_fan_inventory_func</span><span style="color: #d4d4d4;">: </span><span style="color: #569cd6;">true</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">sensors</span><span style="color: #d4d4d4;">:</span></div><div><span style="color: #d4d4d4;"> - </span><span style="color: #569cd6;">name</span><span style="color: #d4d4d4;">: </span><span style="color: #ce9178;">FAN3_1</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">has_target</span><span style="color: #d4d4d4;">: </span><span style="color: #569cd6;">true</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">target_interface</span><span style="color: #d4d4d4;">: </span><span style="color: #ce9178;">xyz.openbmc_project.Control.FanPwm</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">factor</span><span style="color: #d4d4d4;">: </span><span style="color: #b5cea8;">82</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">offset</span><span style="color: #d4d4d4;">: </span><span style="color: #b5cea8;">0</span></div></div>
<p>In phosphor-fan-monitor, for each fan, we will signal the fan
functional property in sensor, and update the fan function in
inventory when that property is changed. Maybe we should update
fan present in inventory also.</p>
<p><br>
</p>
<p>Thu Nguyen<br>
</p>
</body>
</html>