about phosphor pid control package
Will Liang (梁永鉉)
Will.Liang at quantatw.com
Fri May 10 10:08:48 AEST 2019
> On 5/9/19 7:43 AM, Patrick Venture wrote:
> > On Wed, May 8, 2019 at 11:33 PM Will Liang (梁永鉉)
> > <Will.Liang at quantatw.com> wrote:
> >>
> >> Hi,
> >>
> >>> -----Original Message-----
> >>> From: Patrick Venture [mailto:venture at google.com]
> >>> Sent: Thursday, May 9, 2019 12:36 AM
> >>> To: Will Liang (梁永鉉) <Will.Liang at quantatw.com>
> >>> Cc: OpenBMC Maillist <openbmc at lists.ozlabs.org>
> >>> Subject: Re: about phosphor pid control package
> >>>
> >>> On Wed, May 8, 2019 at 6:46 AM Will Liang (梁永鉉)
> >>> <Will.Liang at quantatw.com> wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>> I have a question about getFailSafeMode().
> >>>>
> >>>> Currently, only sensors that are defined as "temp" types can be
> >>>> checked for
> >>> failure.
> >>>> I did not find any "fan" type sensors to check if the fan has failed.
> >>>> Our project need to check the fan fail so I want to add another
> >>>> "fan" sensor
> >>> type to check.
> >>>
> >>>
> >>>
> >>>>
> >>>> Can I add one more "for loop" to check the fan sensor in
> >>>> updateSensors()
> >>> function in zone.cpp??
> >>>>
> >>>> for (const auto& t : _thermalInputs) {
> >>>> ........
> >>>> }
> >>>> for (const auto& t : _fanInputs)
> >>>> {
> >>>> ........
> >>>> }
> >>>
> >>> updateSensors is deliberately not talking to the fans because
> >>> they're not considered inputs into the thermal config, they're
> >>> controlled outputs -- the question I have is, what would you like to do if a
> fan isn't responding?
> >>> failsafemode drives the fans to a specific pre-defined speed to keep
> >>> it from thermal issues. If a fan is failing to respond, one can't
> >>> drive it -- perhaps one can drive the others to some failsafe?
> >>
> >> If a fan fails, we need to enter the fail safe mode to increase the other fan
> duty.
> >>
> >>> If so, one needs to update the failsafe for a zone outside of the
> >>> thermal sensors, but rather where the fans are checked (void
> >>> PIDZone::updateFanTelemetry(void))
> >>
> >> I add following code into the PIDZone::updateFanTelemetry(void) function
> to check the fan fail.
> >> If the fan fails, it will enter fail safe mode.
> >> if (sensor->getFailed())
> >> {
> >> failSafeSensors.insert(f);
> >> }
> >> else
> >> {
> >> // Check if it's in there: remove it.
> >> auto kt = _failSafeSensors.find(f);
> >> if (kt != _failSafeSensors.end())
> >> {
> >> failSafeSensors.erase(kt);
> >> }
> >>
> >> But one more question I have is that the above code can only check if a
> single fan has failed.
> >
> >> Our project needs to check for dual-fan failures. Do you have any
> suggestions for checking the failure of the dual-fan?
> >
> > I'm not entirely certain what you mean. You're saying a dual-fan is a
> > fan that has two outputs but one input?
>
> If this is what you mean, on our systems we simply have a tach sensor per tach
> in the fan, i.e. fan1a and fan1b. I think the above logic would work for this
> issue.
I'm so sorry to make you misunderstand because of my unclear expression.
The "dual-fan" means "Dual rotor fan" , two tachometer output one PWM input.
> >
> >>
> >> Will
> >>>>
> >>>> BRs,
> >>>> Will
More information about the openbmc
mailing list