compulab / i3m-linux-daemon

CompuLab I3M Linux daemon
3 stars 2 forks source link

= AirTop Front Panel daemon and GPU Thermal daemon

This project consists of the following parts:

. airtop-fpsvc - AirTop Front Panel service daemon. This service provides hardware-related metrics to the AirTop front panel controller. . gpu-thermald - GPU Thermal daemon. This service sets GPU temperature upper limit by constantly controlling its power.

There is also a 'sister-project' - package, that wraps the services above into debian packages:

Additional package types might be added in the future.

== Building the source code Issue make in project top directory (where Makefile is present). For debugging purposes, issue make debug=1.

'obj' directory will hold object and other temporary files, 'bin' directory will hold the executables.

== Supported features status

== Software design overview

=== AirTop Front Panel Service daemon This daemon is quite robust and scalable in the expense of simplicity of implementation. The daemon is built around 2 thread pools - frontend and backend:

Frontend is a single-threaded 'owner' of the communication to and from the Front Panel controller. It accepts requests from the FP, and sends back the responses.

Backend is a multi-threaded pool performing the tasks dispatched by the frontend. Data acquired by the backend is handed over to frontend to be passed on to the FP controller.

Each thread is guarded by a watchdog, so that no task can spend in the processing more than a preset time. Watchdog timeout is considered a major failure, and leads to daemon restart.

Notice, that this design enables adding additional frontends, e.g. a web-based one, that would allow creation of web-based front panel useful for system administration.

=== GPU Thermal daemon This daemon implements a modified PID control loop, limiting the GPU temperature by timely limiting of GPU power. While the hard-coded PID factors were matched to meet AirTop case heat dissipation, the whole implementation is not AirTop-specific, and is able of serving any Nvidia GPU capable of power management.