Testing Phosphor-pid-control

Vijay Khemka vijaykhemka at fb.com
Thu Jan 3 07:41:50 AEDT 2019



On 1/2/19, 11:05 AM, "Patrick Venture" <venture at google.com> wrote:

    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.

I am using basic configuration for pid as below. I may have to revisit these data, please advise if I am missing anything here.
        {   
            "Class": "fan",
            "FFGainCoefficient": 0.01,
            "FFOffCoefficient": 0.0,
            "ICoefficient": 0.0,
            "ILimitMax": 0.0,
            "ILimitMin": 0.0,
            "Inputs": [
                "MB_FAN0_TACH"
            ],  
            "Name": "MB_FAN0_TACH",
            "OutLimitMax": 100.0,
            "OutLimitMin": 30.0,
            "Outputs": [
                "Pwm 1"
            ],
            "PCoefficient": 0.0,
            "SlewNeg": 0.0,
            "SlewPos": 0.0,
            "Type": "Pid",
            "Zones": [
                "Pid 1"
            ]
        },  

    
    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.
How to configure step-wise controller as we need for linear configuration as well.
    
    >
    > 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