Swampd PID-driven Fan Controller
Patrick Venture
venture at google.com
Wed Jun 28 05:42:11 AEST 2017
Patrick brought it to my attention that PID wasn't defined:
https://en.wikipedia.org/wiki/PID_controller
-Patrick
On Tue, Jun 27, 2017 at 9:51 AM, Patrick Venture <venture at google.com> wrote:
> Per the requirements to have a fan controller for the quanta-q71l that
> runs within the OpenBMC framework+, I developed the swampd
> application. It was designed to leverage sdbusplus and other OpenBMC
> libraries and coding standards.
>
> It supports:
> * build-time yaml descriptions of the sensors and PID loops
> * run-time configuration of the above
> * run-time fan speed set-point control
> * IPMI controlled manual mode
> * passively and actively read sensors
> * sensors that are from the host
> * any variation on sysfs IO that is configured.
>
> The design document is too large to really paste in this email, so
> I'll summarize.
>
> Each sensor is created based on the configuration provided. Each PID
> loop is created per zone. Each zone lives on a separate thread (could
> be merged into one thread that iterates through zones). The zone
> loops every 0.1s to steer the fans closer to their goal while every
> second it adjusts the goal.
>
> Some things I know OpenBMC won't like: it's multi-threaded. It wasn't
> built into the current fan-presence package.
>
> I'm at a crossroads with this project because I'd like to make it
> generally available. Should I try to submit it for review on this
> list, if so, how? Or should I push it to Google's github projects
> first?
>
> +As well as other requirements.
>
> Thanks,
> Patrick
More information about the openbmc
mailing list