Energy-Efficient CPU Driver Demonstrator For Linux

  • Project name: Energy-Efficient CPU Driver Demonstrator For Linux
  • Source of funding: NASK
  • Project goal: Development and implementation of a CPU frequency control mechanism which optimises energy consumption for selected Linux application servers.


Linux offers several mechanisms for reducing electrical energy consumption The most effective of these are CPU frequency scaling mechanisms implemented in the cpufreq module. The module constitutes an intermediate layer between hardware CPU drivers controlling voltage and frequency and software drivers responsible for implementing the designed control policies at the OS level.

Software drivers made available by the Linux kernel are free to use and support a wide range of hardware architecture. The theoretical research conducted by the NASK Research Division indicated that existing CPU control mechanisms can be improved. The new tools will allow server operation optimisation via adjusting CPU frequency and voltage to the services made available by the operating system. This results in reduced energy consumption costs and improved server efficiency.
A software package was developed as part of the project which:

  • renders it possible to identify the dynamics and efficiency of the services made available by the Linux OS
  • supports the design and implementation of the Linux kernel module which optimises CPU performance.

Test results:

The control mechanisms designed and implemented using the new software were then the subject of experimental research. The tests were conducted on an experimental computational cluster at the NASK Virtual Internet Technologies Laboratory. The research goal was to estimate the increase in CPU control effectiveness compared to the following cpufreq module drivers: ondemand (basic CPU governor), powersave and performance.

The driver optimises the performance of the commercial version of the NGINX+​ HTTP server. Sample experiment results are presented in Figure 1.

The NASK driver proved to be significantly more effective than the standard solution available in the Linux kernel.

  • The solution allowed for 13.8% faster processing of HTTP requests compared to ondemand,
  • in addition, it consumed 8.3% less electrical energy (26.8% less CPU energy) than ondemand.



  • software supporting the service of implementing a dedicated CPU energy-saving mechanism for Linux,
  • a prototype CPU energy-saving mechanism.

Product components:

  • a CPU load sensor
  • a CPU power consumption sensor
  • a load test library
  • a library containing scripts which automate the process of measurement data processing and the process of server model identification
  • a library containing scripts which automate the process of control mechanism synthesis
  • a kernel module which implements the CPU control mechanism and installation and configuration scripts


  • NASK:Research Division, Technical Division, Commercial Division


  • Karpowicz, M; Arabas, P; Niewiadomska-Szynkiewicz, E, "Design and implementation of energy-aware application-specific CPU frequency governors for the heterogeneous distributed computing systems", Future Generation Computer Systems; 2016; Elsevier,
  • Karpowicz, M; Arabas, P; Niewiadomska-Szynkiewicz, E,"Energy-aware multi-level control system for a network of Linux software routers: design and implementation", IEEE Systems Journal; strony 1-12; 2015; IEEE,
  • Karpowicz, M; Malinowski, K, "On Efficient Resource Allocation in Communication Networks",SOFSEM 2007: Theory and Practice of Computer Science; tom 4362; strony 624-635; 2007; Springer.