pllopis / turbofreq Goto Github PK
View Code? Open in Web Editor NEWA p-state driver that provides different policies for turboboost on Intel processors
A p-state driver that provides different policies for turboboost on Intel processors
What is this? ------------- This kernel module provides a cpufreq p-state selection driver for Linux. Why? ---- Modern processors take advantage of the thermal headroom to improve performance by opportunistically adjusting its voltage and frequency based on thermal and energy constraints (e.g. Intel's Turbo Boost technology). This technology introduces performance variation over time that is often undesirable under certain conditions, especially for certain HPC codes. In addition, this dynamic window is becoming larger and more relevant with each generation, and system software is not thermal aware, causing thermal imbalances within a single node, and even within a single socket. This make an homogeneous system behave like an heterogeneous system. By being aware of this heterogeneous behavior, system software can make a more efficient use of the hardware's resources, and expose mechanisms to user-space to allow runtimes or user applications choose an appropriate policy. What does it do? ---------------- This driver implements a few policies that provide different trade-offs between average performance and performance variability, and provides more fine-grained control to user-space to select the appropriate behavior. How does it work? ----------------- After the module is inserted, it populates sysfs entries under /sys/devices/system/cpu/turbofreq/ pstate_available_policies: list available policies that can be fed to pstate_policy. "boost" defaults to the maximum performance and should be similar to the default behavior of the intel_pstate driver. "cpu" provides a stable frequency on a per-cpu basis. "smp" provides a stable frequency smp-wide for all cpus in the system. "noboost" disables turbo boost altogether. pstate_policy: used to select a target policy. task_boost: the task that writes "1\n" to this file will get turbo boost enabled on the cpu it is running on. Write "0\n" to disable and return to the previous policy. reset: resets all values to the default. This will also set internal frequencies that converged under "smp" or "cpu" back to the max. global_pstate: to manually set a stable frequency. This is meant for implementing cluster-wide frequency synchronization with the help of AMQP, but the implementation is not finished. There is also an interface added to each sysfs cpu to check for and enable/disable turbo boost on a per-cpu basis under /sys/devices/system/cpu/cpu%d/boost (depends on your topology). How do I use this? ------------------ To change the default cpufreq driver, the easiest way is to just disable intel_pstate and acpi-cpufreq. To disable intel_pstate, just pass intel_pstate=disable to the kernel's boot parameters. In our distribution (CentOS 6), I couldn't find any reference to acpi-cpufreq being loaded explicitly, so I just moved the file. After doing this, no cpufreq driver will be registered until turbofreq.ko is inserted.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.