<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 05/02/17 4:33 PM, Patrick Venture wrote:<br>
<blockquote
cite="mid:CAO=notyO9vNR-QcbUFMHhdw+EB64k0x-fM4ycwxF7G_Ck_xUiA@mail.gmail.com"
type="cite">
<div dir="ltr">Fantastic! Thanks for elaborating.
<div>
<table class="gmail-Bs gmail-nH gmail-iY" style="width:1363px"
cellpadding="0">
<tbody>
<tr>
<td class="gmail-Bu"><br>
>> Please elaborate on how the control program
will execute it's "pluggable" algorithm?<br>
> Filling out the associated yaml file for the
control application defines how the algorithm will
control the fan speeds based on the values, sensors
listed, delays, etc.. that will be supported as
parameter inputs to the algorithm.<br>
<br>
What do you mean by "delays?"<br>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</blockquote>
No prob, so in our design each temperature sensor that's an input to
the control algorithm has a defined RPM delta for each degree above
or below a defined "nominal" temperature range. For each sensor
read, the maximum RPM delta based on their reported temps are
written as the new speed target for the zone they are included in.
After that occurs, any more RPM deltas determined from the sensor
readings are ignored for a set amount of time(delay), unless the RPM
delta is larger than the previous RPM change. If that happens, the
difference in RPM deltas is then written as the new speed target for
the zone they are included in again.<br>
<br>
Not sure if that describes it well enough, but for example:<br>
Given a core temp's "nominal" temperature range is 75-78C, if that
core reports a temp of 79C with a defined RPM increase delta of
300rpms per degree above, then the fans in the zone containing this
core are increased 300rpms. After that increase is requested, no
increase requests 300rpm and less are done until after the delay
interval has passed. Whereas if another core is reported at 80C,
resulting in a 600rpm increase request during that delay interval,
then an additional 300rpms are added to the previous target and the
delay interval restarts. After the interval expires it considers all
incoming deltas again.<br>
<br>
The delay interval is there to help eliminate unnecessary speed
change requests while the fans are going to their target speed.
Also, this minimizes the possibility for speed oscillations.<br>
<br>
Matt<br>
<blockquote
cite="mid:CAO=notyO9vNR-QcbUFMHhdw+EB64k0x-fM4ycwxF7G_Ck_xUiA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<table class="gmail-Bs gmail-nH gmail-iY" style="width:1363px"
cellpadding="0">
<tbody>
<tr>
<td class="gmail-Bu"><br>
Patrick</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, May 2, 2017 at 2:21 PM, Matthew
Barth <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:msbarth@linux.vnet.ibm.com" target="_blank">msbarth@linux.vnet.ibm.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><span class=""> On
05/02/17 2:33 PM, Patrick Venture wrote:<br>
<blockquote type="cite">
<div dir="ltr">Please elaborate on the format or
layout of the control configuration file.</div>
</blockquote>
</span> This will be a yaml file containing the zone and
fan definitions with the associated set of parameters that
feed into the control algorithm. Currently this contains
the zone number, the zone initial speed, and the list of
fans(including their inventory path, sensor name, etc...).<span
class=""><br>
<blockquote type="cite">
<div dir="ltr">
<div>Please elaborate on the mechanism planned to
import it into code? Y'all often use python
programs to make c++, will that be the case here?</div>
</div>
</blockquote>
</span> Correct, that will be the case here as well.<span
class=""><br>
<blockquote type="cite">
<div dir="ltr">
<div>Please elaborate on how the control program
will execute it's "pluggable" algorithm?</div>
</div>
</blockquote>
</span> Filling out the associated yaml file for the
control application defines how the algorithm will control
the fan speeds based on the values, sensors listed,
delays, etc.. that will be supported as parameter inputs
to the algorithm.<span class=""><br>
<blockquote type="cite">
<div dir="ltr">
<div>Please elaborate on how the fans will be
controlled? Will that be as a group per system or
independently per zone?</div>
</div>
</blockquote>
</span> This will be configurable by the yaml file where
the fan speeds are set on the zone, which a zone is a
group of fans. These zones can be constructed as 1-to-many
fans enabling individual fans being controlled or a group
of fans being controlled similarly.<span class=""><br>
<blockquote type="cite">
<div dir="ltr">
<div> -- What is a zone?</div>
</div>
</blockquote>
</span> A grouping of fans<span class=""><br>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Patrick</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, May 2, 2017 at
11:07 AM, Matthew Barth <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:msbarth@linux.vnet.ibm.com"
target="_blank">msbarth@linux.vnet.ibm.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0
0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">Patrick,<br>
<br>
As Patrick mentioned a few of us have been
working on the fan control infrastructure
currently and wrote up a quick outline to share
our thoughts on the design layout. Let us know
if there are areas you'd like to see more
detail.<br>
<br>
Matt<br>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</span></div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</body>
</html>