, 1 min read

Enabling Power-Aware Applications on Linux Using Cyrogenic Module

Original post is here eklausmeier.goip.de/blog/2014/03-23-enabling-power-aware-applications-on-linux-using-cyrogenic-module.

A post in Phoronix: "Cryogenic" Linux Kernel Drops Power Use shed light on a Linux kernel module improving power consumption.

This module was written as part of a master thesis in computer science at TUM (Technical University of Munich) by Alejandra Morales Ruiz. The thesis is well written, showing what others have already done in this area, providing evidence that the new approach reduces power consumption.

The thesis can be downloaded on [https://gnunet.org](https://gnunet.org/sites/default/files/morales2014cryogenic.pdf "Cryogenic - Enabling Power-Aware Applications on Linux"). More on Cyrogenic in [Cyrogenic](https://gnunet.org/cryogenic "Cyrogenic").

Some excerpts from the thesis and above website: The whole implementation of Cryogenic is embedded in a kernel module that works as a character device driver. When Cryogenic is loaded, a set of character devices is created and a subset of system calls is defined. The system calls handle the character devices through the device nodes created under /dev/cryogenic/. This is the API that developers will use later to manage the interaction between applications and hardware devices. (...) Non-urgent tasks may not only force devices to wake up, but also prevent them from going to sleep, since they may reset the timeout to enter the sleep state. Therefore, the second action taken by Cryogenic is to lengthen the duration of idle periods. This way, the overall consumption decreases and it is more likely that the device enters into sleep. Cryogenic is capable to achieve savings between 1% and 10% for a USB WiFi device.


The thesis takes a UDP client as example.