You are here: Home / Projects / OSADL Linux Add-on Patches / 
2024-03-29 - 03:07
OSADL Projects

OSADL Linux Add-on Patch: Precise load measurement

Ping SysRq - Latency histograms - NMI SysRq - Built-in kernel patchset - Precise load measurement - Bundle

Why another load measurement?

The standard load measurement of the Linux kernel has the disadvantage that it is collecting load data at discrete points in time, but the load may be completely different some time before and some time after the data were collected.

A more precise per-CPU load measurement can be obtained, if the time is recorded a particular CPU core spends in idle processing and this time is compared against the total time.

How does it work?

The related patch (configuration with CONFIG_CPU_IDLERUNTIME=y) adds entries for every CPU in /proc/idleruntime/cpuX/data in the format "<idletime> <runtime>". The counters can be reset by writing to /proc/idleruntime/cpuN/reset. To calculate the per-core CPU usage since the most recent reset, divide the runtime by the sum of runtime plus idletime, e.g. on a 4-core processor:
for i in `ls -1d /proc/idleruntime/cpu* | sort -nk1.22`
> do
>   echo "$i: `awk '{ print (100.0*$2) / ($1+$2)"%" }' <$i/data`"
>   echo 1 >$i/reset
> done

/proc/idleruntime/cpu0: 72.0048%
/proc/idleruntime/cpu1: 5.49522%
/proc/idleruntime/cpu2: 0.27916%
/proc/idleruntime/cpu3: 32.3493%


In addition, summed up data of all present CPUs are available in /proc/idleruntime/ all in the same format as above. Thus, to calculate the overall CPU usage since the most recent reset, the following command may be used:
awk '{ print (100.0*$2) / ($1+$2)"%" }' </proc/idleruntime/all/data

Download patch

Precise load measurement

  
Kernel versionViewDownload
4.16.7-rt1...4.16.15-rt7sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.18.5-rt3...4.18.16-rt9sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.1-rt3...4.19.25-rt16sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.94-rt39...4.19.94-rt39sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.98-rt40...4.19.98-rt40sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.100-rt41...4.19.106-rt46sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.115-rt50...4.19.115-rt50sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.120-rt52...4.19.127-rt55sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.132-rt59...4.19.132-rt59sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.135-rt60...4.19.135-rt61sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.142-rt63...4.19.152-rt66sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.160-rt69...4.19.160-rt69sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.165-rt70...4.19.165-rt70sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.173-rt72...4.19.173-rt72sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.180-rt73...4.19.180-rt73sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.182-rt74...4.19.182-rt74sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.184-rt75...4.19.185-rt76sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.188-rt77...4.19.195-rt82sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.196-rt83...4.19.206-rt87sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.207-rt88...4.19.217-rt95sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.218-rt96...4.19.233-rt105sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.235-rt106...4.19.237-rt107sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.240-rt108...4.19.240-rt108sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.245-rt109...4.19.246-rt110sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.252-rt112...4.19.255-rt114sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.261-rt116...4.19.265-rt117sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.269-rt119...4.19.277-rt122sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.280-rt123...4.19.280-rt123sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.283-rt124...4.19.306-rt132sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
4.19.307-rt133...4.19.307-rt133sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.0.3-rt1...5.0.19-rt11sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.0.21-rt16...5.0.21-rt16sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.2.0-rt1...5.2.21-rt15sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.3-rt1...5.4.5-rt3sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.10-rt4...5.4.10-rt5sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.13-rt6...5.4.13-rt7sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.17-rt8...5.4.19-rt11sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.22-rt12...5.4.22-rt13sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.24-rt14...5.4.28-rt19sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.34-rt21...5.4.34-rt21sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.39-rt23...5.4.39-rt23sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.40-rt24...5.4.40-rt24sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.43-rt25...5.4.47-rt28sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.52-rt31...5.4.52-rt31sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.54-rt32...5.4.54-rt32sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.54-rt33...5.4.55-rt35sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.59-rt36...5.4.59-rt36sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.61-rt37...5.4.61-rt37sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.66-rt38...5.4.66-rt38sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.69-rt39...5.4.70-rt40sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.74-rt41...5.4.84-rt47sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.87-rt48...5.4.91-rt50sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.93-rt51...5.4.93-rt51sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.102-rt53...5.4.102-rt53sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.106-rt54...5.4.106-rt54sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.109-rt55...5.4.109-rt56sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.115-rt57...5.4.115-rt57sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.123-rt59...5.4.123-rt59sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.129-rt61...5.4.143-rt64sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.154-rt65...5.4.161-rt67sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.170-rt68...5.4.182-rt70sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.182-rt71...5.4.182-rt71sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.182-rt72...5.4.188-rt73sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.193-rt74...5.4.193-rt74sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.209-rt77...5.4.209-rt77sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.221-rt79...5.4.221-rt79sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.230-rt80...5.4.230-rt80sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.242-rt81...5.4.242-rt81sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.248-rt83...5.4.248-rt83sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.254-rt85...5.4.254-rt85sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.257-rt87...5.4.257-rt87sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.4.264-rt88...5.4.271-rt89sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.6.2-rt1...5.6.2-rt1sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.6.4-rt2...5.6.4-rt3sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.6.10-rt5...5.6.10-rt5sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.6.14-rt6...5.6.17-rt9sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.6.17-rt10...5.6.19-rt12sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.9.0-rt16...5.9.1-rt17sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.9.1-rt18...5.9.1-rt18sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.9.1-rt19...5.9.1-rt20sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.1-rt19...5.10.1-rt20sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.4-rt21...5.10.4-rt21sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.4-rt22...5.10.8-rt24sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.12-rt25...5.10.12-rt25sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.12-rt26...5.10.12-rt26sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.14-rt27...5.10.14-rt28sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.16-rt29...5.10.17-rt33sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.21-rt34...5.10.21-rt34sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.25-rt35...5.10.25-rt35sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.27-rt36...5.10.27-rt36sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.30-rt37...5.10.35-rt39sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.41-rt42...5.10.41-rt42sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.47-rt45...5.10.47-rt45sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.47-rt46...5.10.56-rt49sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.59-rt51...5.10.59-rt52sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.65-rt53...5.10.78-rt56sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.83-rt58...5.10.90-rt60sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.90-rt61...5.10.106-rt64sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.115-rt67...5.10.115-rt67sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.120-rt70...5.10.120-rt70sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.131-rt72...5.10.131-rt72sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.140-rt73...5.10.153-rt76sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.158-rt77...5.10.158-rt77sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.162-rt78...5.10.168-rt83sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.175-rt84...5.10.176-rt86sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.179-rt87...5.10.180-rt89sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.184-rt90...5.10.186-rt91sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.192-rt92...5.10.192-rt92sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.194-rt94...5.10.194-rt95sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.197-rt96...5.10.209-rt101sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.10.210-rt102...5.10.213-rt105sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.11.0-rt4...5.11.0-rt5sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.11.2-rt8...5.11.2-rt9sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.14.1-rt19...5.14.2-rt21sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.0-rt16...5.15.2-rt20sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.3-rt21...5.15.3-rt21sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.5-rt22...5.15.5-rt22sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.7-rt23...5.15.26-rt34sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.27-rt35...5.15.32-rt39sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.34-rt40...5.15.34-rt40sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.36-rt41...5.15.36-rt41sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.39-rt42...5.15.43-rt45sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.44-rt46...5.15.44-rt46sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.49-rt47...5.15.49-rt47sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.55-rt48...5.15.55-rt48sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.65-rt49...5.15.76-rt53sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.79-rt54...5.15.86-rt56sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.92-rt57...5.15.95-rt60sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.96-rt61...5.15.96-rt61sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.107-rt62...5.15.107-rt62sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.111-rt63...5.15.125-rt66sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.129-rt67...5.15.136-rt71sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.15.141-rt72...5.15.148-rt74sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.16.0-rt15...5.16.1-rt17sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.16.2-rt19...5.16.2-rt19sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.17.1-rt17...5.17.1-rt17sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
5.18.0-rt11...5.18.0-rt11sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.0.0-rt11...6.0.5-rt14sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.1.12-rt6...6.1.12-rt6sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.1.12-rt7...6.1.12-rt7sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.1.19-rt8...6.1.19-rt8sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.1.26-rt8...6.1.27-rt9sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.1.28-rt10...6.1.38-rt12sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.1.46-rt13...6.1.46-rt13sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.1.54-rt15...6.1.59-rt16sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.1.64-rt17...6.1.77-rt24  
6.1.64-rt17...6.1.75-rt23sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.1.79-rt25...6.1.82-rt27sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.2.0-rt2...6.2.0-rt3sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.3.0-rt11...6.3.1-rt13sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.3.3-rt15...6.3.3-rt15sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.4.0-rt6...6.4.0-rt6sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.4.6-rt8...6.4.6-rt8sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.5.0-rt6...6.5.2-rt8sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.6.0-rt12...6.6.0-rt14sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.6.0-rt15...6.6.0-rt15sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.6.5-rt16...6.6.5-rt16sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.6.7-rt17...6.6.15-rt22sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.6.18-rt23...6.6.22-rt27sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.7.0-rt6...6.7.0-rt6sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch
6.8.0-rt8...6.8.0-rt8sched-add-per-cpu-load-measurement.patchsched-add-per-cpu-load-measurement.patch