phosphor-pid-control: PWM not changing back from Manual to Auto mode

Ed Tanous edtanous at google.com
Tue Nov 16 10:31:23 AEDT 2021


On Mon, Nov 15, 2021 at 3:20 PM Charles Boyer <Charles.Boyer at fii-usa.com> wrote:
>
> Hello Josh and Ed,
>
> I used the OEM IPMI command to enter Manual mode of phosphor-pid-control, and then I set the PWM value. After leaving Manual mode, I would expect swampd to bring the PWM back to the value from before entering Manual mode. However, the PWM remains the value I set in Manual mode. Although, when I induced a temperature sensor to approach its setpoint, I observed the PWM to change.
>
> I believe the reason is because of https://github.com/openbmc/phosphor-pid-control/blob/cca9c659889d149c06e95bab4b8808db4f1e3eab/dbus/dbuswrite.cpp#L69. My system uses DBus fan sensors, so the fan controller will call upon DbusWritePercent::write, which writes the calculated output value (ovalue) if it is different than the oldValue. When I enter Manual mode and set the PWM, the oldValue does not change; when I exit Manual mode, the ovalue and oldValue are the same as before Manual mode, so it skips the PWM write.
>
> How can the PWM "immediately" return to its original value from before Manual mode?

This is a known issue.  as the insecure validation feature was
defined, it required a full bmc reboot to reset all state at the end
of a validation/debug/tuning session.  This is one instance of many
where "best effort" clearly isn't good enough, although I'd be happy
to see patches to make the behavior better.

>
> Thanks,
> Charles
>


More information about the openbmc mailing list