CoreFreq : CPU monitoring and tuning software designed for the 64-bit processors.
CoreFreq : CPU monitoring and tuning software designed for the 64-bit processors.
CoreFreq, CPU monitoring software with BIOS like functionalities, is designed for the 64-bit Processors of architecture Intel Atom, Core2, Nehalem, SandyBridge and superiors; AMD Families from 0Fh ... up to 17h (Zen , Zen+ , Zen 2), 18h (Hygon Dhyana), 19h (Zen 3, Zen 3+, Zen 4, Zen 4c), 1Ah (Zen 5, Zen 5c); Arm A64; RISC-V RV64; PowerPC64 (LE)
CoreFreq provides a framework to retrieve CPU data with a high degree of precision:
To reach this goal, CoreFreq implements a Linux Kernel module which employs the followings:
a- Intel only: For a better accuracy, disable the Kernel NMI Watchdog
Add the below parameter in the kernel boot loader { Grub, SysLinux } ...
nmi_watchdog=0... and build with the fixed performance counters
make MSR_CORE_PERF_UC=MSR_CORE_PERF_FIXED_CTR1 MSR_CORE_PERF_URC=MSR_CORE_PERF_FIXED_CTR2b- AMD and Intel: Some Virtualization
VMs don't provide access to the registers that the CoreFreq driver employs :
However CoreFreq is making use of the virtualized performance counter :
c- Rendering
The UI renders best with an ASCII console or a Xterm with VT100 support, ANSI colors; optionally transparency.
If bold and bright colors are not rendered then use the following terminal options:
In the Preferences - Colors tab, select Show bold text in bright colors
Uncomment and set draw_bold_text_with_bright_colors: true in <config-file>
Force pseudo-terminal allocation. This option is used to execute a menu based application on a remote machine.
ssh -t corefreq-cliCONFIG_MODULES, CONFIG_SMP, CONFIG_X86_MSRCONFIG_HOTPLUG_CPU, CONFIG_CPU_IDLE, CONFIG_CPU_FREQ, CONFIG_PM_SLEEP, CONFIG_DMI, CONFIG_HAVE_NMI, CONFIG_XEN, CONFIG_AMD_NB, CONFIG_SCHED_MUQSS, CONFIG_SCHED_BMQ, CONFIG_SCHED_PDS, CONFIG_SCHED_ALT, CONFIG_SCHED_BORE, CONFIG_CACHY, CONFIG_ACPI, CONFIG_ACPI_CPPC_LIBCONFIG_TRIM_UNUSED_KSYMSgit clone https://github.com/cyring/CoreFreq.gitcd CoreFreq
make -j MD [build]
MD [build/module]
LN [build/Makefile]
LN [build/module/corefreqk.c]
CC [build/corefreqd.o]
CC [build/corefreqm.o]
LD [build/corefreqd]
CC [build/corefreq-cli.o]
CC [build/corefreq-ui.o]
CC [build/corefreq-cli-rsc.o]
CC [build/corefreq-cli-json.o]
CC [build/corefreq-cli-extra.o]
LD [build/corefreq-cli]
CC [M] module/corefreqk.o
LD [M] corefreqk.o
MODPOST Module.symvers
CC [M] corefreqk.mod.o
CC [M] .module-common.o
LD [M] corefreqk.ko
BTF [M] corefreqk.kocorefreqk.ko driver.make installsystemctl daemon-reloadinsmod build/corefreqk.ko./build/corefreqd./build/corefreq-climodprobe corefreqksystemctl start corefreqdcorefreq-cliPress Ctrl+x or Ctrl+c to stop the client.
Press Ctrl+c to stop the daemon (in foreground) or kill its background job.
Unload the kernel module
rmmod corefreqk.kocorefreq-cli -h…corefreqd -h…modinfo corefreqk.ko…Download the CoreFreq Live CD from the Wiki
Use lsmod, dmesg or journalctl -k to check if the module is started:
CoreFreq(14:30:-1): Processor [ 8F_71] Architecture [Zen2/Matisse] SMT [32/32]CoreFreq Daemon #.##.# Copyright (C) 2015-2026 CYRIL COURTIAT
Processor [AMD Ryzen 9 3950X 16-Core Processor]
Architecture [Zen2/Matisse] 32/32 CPU Online.Without arguments, the corefreq-cli program displays Top Monitoring
Remark: Drawing will stall if the terminal width is lower than 80 columns, or its height is less than required.
Memory Controller
With the option -c, the client traces counters
Using option -m corefreq-cli shows the CPU topology
With the option -i corefreq-cli traces the number of instructions per second / cycle
CPU IPS IPC CPI
#00 0.000579/s 0.059728/c 16.742698/i
#01 0.000334/s 0.150569/c 6.641471/i
#02 0.000598/s 0.161326/c 6.198641/i
#03 0.000294/s 0.233535/c 4.282013/i
#04 0.000240/s 0.042931/c 23.293141/i
#05 0.000284/s 0.158661/c 6.302765/i
#06 0.000128/s 0.128031/c 7.810631/i
#07 0.000088/s 0.150406/c 6.648674/i-s to show the Processor information (BSP)apt install dkmsapt list git build-essential gawk fakeroot linux-headers*yum install kernel-devel
yum group install "Development Tools"## as root, install kernel development package and dependencies
dnf --assumeyes install kernel-devel gcc make git bc## as a User, build CoreFreq
cd CoreFreq
make -j## as root, install the binaries
make install
## and start Driver and Daemon
modprobe corefreqk
corefreqd## as a User, start the Client
corefreq-cli## Terminate Client, Daemon and unload Driver as root
modprobe -r corefreqk
## Proceed to uninstallation as root
cd CoreFreq
make uninstallInstall Tools
apt-get install build-essential dkms git libpthread-stubs0-devInstall headers related to your kernel
apt install pve-headers-`uname -r`
git clone https://github.com/cyring/CoreFreq.git
cd CoreFreq && makeInstall the module in the system, refresh it and start it
make install
depmod
modprobe corefreqk
systemctl start corefreqdcorefreq.plg from ich777/unraid-corefreq## Install the kernel development packages
apk add alpine-sdk sed installkernel bc nawk diffutils findutils pahole openssl-dev python3 linux-virt linux-virt-dev## Install the kernel development packages
doas apk add git ckms gmake clang linux-headers linux-lts-devel
## Add the CoreFreq directory containing the ckms.ini file
doas ckms add CoreFreq/
## Build the CoreFreq version M.m.r
doas ckms build corefreqk=M.m.r
## Or manually if using the Clang compiler
gmake CC=clangQ: How many CPUs are supported by CoreFreq ?
A: Up to 1024 CPUs can be built using the make CORE_COUNT option.
256 as a default.
Q: Turbo Technology is activated however CPUs don't reach those frequencies ?
Q: The CPU ratio does not go above its minimum value ?
Q: The UI shows erratic counters values !
A: In the kernel boot command argument line, disable the NMI Watchdog
nmi_watchdog=0Q: The Processor does not enter the C-States ?
A1: Check if at least one idle driver is running.
According to the processor specs, specify a max_cstate value in the kernel arguments as follow.
intel_idle.max_cstate=<value>A2: CoreFreq can also register itself as a cpuidle driver.
This time, any idle driver will have to be blacklisted in the kernel command line; such as:
modprobe.blacklist=intel_cstate idle=halt intel_idle.max_cstate=0Start the CoreFreq driver with the Register_CPU_Idle parameter:
insmod corefreqk.ko Register_CPU_Idle=1Q: The CoreFreq UI refreshes itself slowly, with a delay after the actual CPUs usage ?
A: The sampling time to read the counters can be reduced or increased using a CoreFreq module argument:
insmod corefreqk.ko SleepInterval=<value>where <value> is supplied in milliseconds between a minimum of 100 ms and a maximum of 4500 ms.
1000 ms is the default value.
Q: The base clock reports a wrong frequency value ?
A: _CoreF
No open issues yet, or sync has not completed.