How to install and use CoreFreq – CPU monitoring tool for linux

CoreFreq is a CPU monitoring software designed for 64-bits Processors w/ architectures Intel Atom, Core2, Nehalem, SandyBridge and superior, AMD Family 0F.

CoreFreq provides a framework for retrieving CPU data with a high degree of precision:

Core frequencies & ratios; SpeedStep (EIST), Turbo Boost, Hyper-Threading (HTT) and Base Clock

Performance counters including Time Stamp Counter (TSC), Unhalted Core Cycles (UCC),

Unhalted Reference Cycles (URC)

Number of instructions per cycle or second, IPS, IPC, or CPI

CPU C-States C0 C1 C3 C6 C7 – C1E – Auto/UnDemotion of C1 C3

DTS Temperature and Tjunction Max, Thermal Monitoring TM1 TM2 state

Topology map including Caches for boostrap & application CPU

Processor features, brand & architecture strings

To reach this goal, CoreFreq implements a Linux Kernel module which employs the followings:

asm code to keep as near as possible the readings of the performance counters;

per-CPU, implements slab data memory and high-resolution timer;

compliant with suspend/resume and CPU Hot-Plug;

a shared memory to protect the kernel from the user-space part of the software;

atomic synchronization of threads to avoid mutexes and deadlock.

How to install CoreFreq

First, install the prerequisite packages:

## On Debian/Ubuntu distributions $ sudo apt-get install dkms git libpthread-stubs0-dev ## On CentOS/RHEL sudo yum group install 'Development Tools' ## On Fedora 22+ $ sudo dnf group install 'Development Tools'>

Now, clone and build CoreFreq source code from github:

$ git clone https://github.com/cyring/CoreFreq.git $ cd CoreFreq $ make

$ sudo insmod corefreqk.ko $ sudo ./corefreqd

As root, change to the build directory then start the module followed by the daemon:

Then start the client, as user:

$ ./corefreq-cli

To see all usage options, type the command below:

$ ./corefreq-cli --help

./corefreq-cli --help CoreFreq. Copyright (C) 2015-2017 CYRIL INGENIERIE usage: corefreq-cli [-option ] -t Show Top (default) -d Show Dashboard arguments: -c Monitor Counters -i Monitor Instructions -s Print System Information -M Print Memory Controller -m Print Topology -u Print CPUID -k Print Kernel -h Print out this message Exit status: 0 if OK, 1 if problems, >1 if serious trouble. Report bugs to labs[at]cyring.fr

For more information and usage, visit the CoreFreq Github repository: https://github.com/cyring/CoreFreq