Testing Phosphor-pid-control

Patrick Venture venture at google.com
Thu Jan 3 06:04:28 AEDT 2019


On Wed, Jan 2, 2019 at 11:00 AM Vijay Khemka <vijaykhemka at fb.com> wrote:
>
> Hi Patrick,
> I am not seeing any change in fan speed when I read hwmon values. Can you please give me any formula how it is using data to change speed. Because I tried faking several temperatures and finally could make this change when I bring temperature below 10 but it doesn't change when I take temperature to more than max value.

Which PID controller are you using?  If you only have sensors
configured then there's nothing to push the changes, presumably you
have a PID added.  Depending on which you chose, depends on what's
happening with it -- that's why I'm asking for more.  The formula for
the "normal" pid controller is such that it tries to reduce the
"error" between the set-point and the real fan speeds.

https://github.com/openbmc/phosphor-pid-control/blob/master/pid/ec/pid.cpp#L43

There's also a step-wise controller option, which is why I'm asking.

>
> Regards
> -Vijay
>
> On 12/28/18, 1:50 AM, "Patrick Venture" <venture at google.com> wrote:
>
>     On Thu, Dec 20, 2018 at 12:57 PM Vijay Khemka <vijaykhemka at fb.com> wrote:
>     >
>     > Hi Ed,
>     > I am able to override and read it back but not seeing any change in pwm data as well as fan speed. I have swampd running.
>
>     You mean the dbus reads of the values aren't changing?  I'm not as
>     familiar with the dbus-sensor integration beyond run-time
>     configuration, versus run-time state.  Swampd itself doesn't expose
>     PID information or set-point information unless that's done in the
>     step controller (and I didn't see that aspect in that object).
>
>     Or are you saying that the fan speeds aren't changing when you read
>     the hwmon values?
>
>     >
>     > Regards
>     > -Vijay
>     >
>     > On 12/20/18, 10:14 AM, "Tanous, Ed" <ed.tanous at intel.com> wrote:
>     >
>     >     Assuming you’re using dbus-sensors (which I’m pretty sure you are):
>     >
>     >     Support for overriding sensor values was recently landed in this commit:
>     >     https://urldefense.proofpoint.com/v2/url?u=https-3A__gerrit.openbmc-2Dproject.xyz_-23_c_openbmc_dbus-2Dsensors_-2B_16177_&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=v9MU0Ki9pWnTXCWwjHPVgpnCR80vXkkcrIaqU7USl5g&m=1J-5eJl4Drc2LKcQ2SdONc02uR5cih3P68m66QcMYog&s=c9798qmI_pA3hnzB97oaYFK8yFTmwrxdpAeRrui4qkY&e=
>     >
>     >     Overriding a sensor value with a "fake" sensor reading should be as easy as simply calling SetProperty on the dbus interface.
>     >
>     >     Example as tested on my system (your path names may vary)
>     >     dbus-send --system --print-reply --dest=xyz.openbmc_project.CPUSensor /xyz/openbmc_project/sensors/temperature/Core_1_CPU0 org.freedesktop.DBus.Properties.Set string:xyz.openbmc_project.Sensor.Value string:Value variant:double:1.0
>     >
>     >     and verify by reading it back out:
>     >
>     >     dbus-send --system --print-reply --dest=xyz.openbmc_project.CPUSensor /xyz/openbmc_project/sensors/temperature/Core_1_CPU0 org.freedesktop.DBus.Properties.GetAll string:xyz.openbmc_project.Sensor.Value
>     >
>     >
>
>


More information about the openbmc mailing list