<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>