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