Quanta requests to create a repo in OpenBMC github

Benjamin Fair benjaminfair at google.com
Sat Sep 19 04:28:48 AEST 2020


On Fri, 18 Sep 2020 at 11:23, Andrei Kartashev <a.kartashev at yadro.com> wrote:
>
> I'm just curious, because I don't really know how does pid-control
> actually works. Let's say we have following zone configuration (EM
> configuration file, unrelated PID parameters are hidden):
> {
>     "FailSafePercent": 100,
>     "MinThermalOutput": 30,
>     "Name": "Main",
>     "Type": "Pid.Zone"
> },
> {
>     "Class": "temp",
>     "Inputs": [
>         "DIMM [ABCDEF]\\d+ CPU0",
>         "DIMM [ABCDEF]\\d+ CPU1"
>     ],
>     "Name": "DIMM ALL",
>     "Outputs": [],
>     "SetPoint": 80.0,
>     "Type": "Pid",
>     "Zones": [
>         "Main"
>     ],
>     ...
> },
> {
>     "Class": "temp",
>     "Inputs": [
>         "EXIT_AIR"
>     ],
>     "Name": "EXIT_AIR",
>     "Outputs": [],
>     "SetPoint": 50.0,
>     "Type": "Pid",
>     "Zones": [
>         "Main"
>     ],
>     ...
> },
> {
>     "Class": "fan",
>     "Inputs": [
>         "SYS_FAN"
>     ],
>     "Name": "SYS_FAN",
>     "Outputs": [
>         "SYS_FAN_PWM"
>     ],
>     "Type": "Pid",
>     "Zones": [
>         "Main"
>     ],
>     ...
> },
>
>
> How would it work? I was sure pid-control would examine all the sensors
> and try to keep temperature below setpoints: 80 degrees for any of DIMM
> memory sensors and 50 degree for exit air. If so, what is the benefit
> to use this virtual margin sensor?

The most important use case is mixing absolute and margin temperatures.

Some sensors in a zone are only readable by the host, so there's a
service that collects that data and calculates a worst margin. This
margin is sent over IPMI to the BMC, but then needs to be combined
with the other, absolute temperatures that the BMC can read directly.

>
> On Fri, 2020-09-18 at 08:49 -0700, Patrick Venture wrote:
> > On Fri, Sep 18, 2020 at 1:06 AM Andrei Kartashev <
> > a.kartashev at yadro.com> wrote:
> > >
> > > > This daemon is intended to be used in combination with
> > > > phosphor-pid-control. You define a configuration file with two
> > > > sections: sensors and zones.
> > > >
> > > > Sensors have a D-Bus path to read from along with a target
> > > > temperature
> > > > and some other parameters. The daemon subtracks the current
> > > > temperature from the target temperature to get the "margin". A
> > > > smaller
> > > > margin means the temperature is closer to the limit.
> > > >
> > > > Zones group sensors together and look for the worst (lowest)
> > > > margin
> > > > value within that group. This value is then exported for use in
> > > > phosphor-pid-control.
> > >
> > > I wonder, isn't phosphor-pid-control do the same by its own? How
> > > does
> > > it works inside pid-control daemon, when you set several thermal
> > > sensors for one Zone an set setpoint for each of them?
> >
> > Not sure what your question is, but yes, the pid-control daemon can
> > host its own margin sensor values that are populated externally,
> > however this is only supported via the json configuration at present.
> >
> > >
> > > --
> > > Best regards,
> > > Andrei Kartashev
> > >
> > >
> --
> Best regards,
> Andrei Kartashev
>
>


More information about the openbmc mailing list