RTEVAL(8)
๐ NAME ๐
rteval โ evaluate latency performance of a realtime Linux system โจ
okay so bestie, you're holding the manual page for rteval(8), and it lives in the System Administration part of the manual, which is so on brand for a tool this powerful. it's giving "root privileges required, main character energy." ๐ซถ
๐ SYNOPSIS ๐
rteval [OPTIONS]
๐ธ DESCRIPTION ๐ธ
the rteval program is used to evaluate the realtime performance of a Linux kernel on a particular hardware system. literally what it says on the tin, no cap.
here's the vibe: it runs measurement modules (cyclictest or timerlat) to measure scheduling and timer latency, while simultaneously running system load modules (kernel compile, hackbench, stress-ng) to stress the system. so it's measuring latency while the machine is getting absolutely jumped. ๐
the program runs for a specified duration (default 60 seconds, but typically 12+ hours for production testing, which is wild but okay queen we respect the grind) and generates an XML report containing system information, raw measurement data, and statistical analysis โ including min/max latency, standard deviation, and histograms. ๐
results are stored in a timestamped directory (rteval-YYYYMMDD-N) containing the XML report and optional logs. iconic.
โจ OPTIONS โจ
๐ General Options
-h,--helpโ Display help message and exit. bye bestie ๐-V,--versionโ Printrtevalversion and exit.-d,--duration DURATIONโ Specify length of test run in seconds (default: 60.0). Can be specified as a floating point number (e.g.,1.5for 90 seconds) or with time suffixes. yes you read that right,1.5= 90 seconds, the math is mathing ๐งฎ-f,--inifile FILEโ Initialization file for configuring loads and behavior.-w,--workdir DIRECTORYโ Top directory forrtevaldata (default: current directory).-i,--installdir DIRECTORYโ Place to locate installed templates (default:/usr/share/rteval).-l,--loaddir DIRECTORYโ Directory for load source tarballs (default:./loadsource).-a,--annotate STRINGโ Add an annotation string which is stored in the report. your little love note to future you ๐-D,--debugโ Turn on debug prints (default:False).-L,--loggingโ Log the output of measurement and load modules in the report directory.-q,--quietโ Turn on quiet mode (default:False).-v,--verboseโ Turn on verbose prints (default:False).-s,--sysreportโ Runsysreportto collect system data (default:False).
๐ฆ Load Control Options
--noloadโ Only run the measurements (don't run load modules).-O,--onlyloadโ Only run the loads (don't run measurement threads).--loads-cpulist CPULISTโ CPU list where load modules will run (e.g.,0-3,8-11).
๐ CPU Isolation and Cpuset Options
--cpusetsโ Use cgroup v2 cpusets to isolate measurement and housekeeping workloads.--housekeeping CPULISTโ Isolated CPUs reserved for system tasks (not used byrteval).--warn-non-isolated-core-sharingโ Warn about measurement and load CPUs sharing cores even when neither is isolated.--cleanup-cpusetsโ Remove any leftoverrtevalcpusets from previous runs and exit. spring cleaning era ๐งน
๐ Measurement Module Options
--measurement-module MODULEโ Select measurement module:cyclictestortimerlat(overrides config file).--measurement-cpulist CPULISTโ CPU list where measurement modules will run.--measurement-run-on-isolcpusโ Include isolated CPUs in default cpulist.--measurement-idle-set IDLESTATEโ Idle state depth to set on CPUs running measurement modules.
โญ Cyclictest Module Options
--cyclictest-interval INTV_USโ Base interval of the threads in microseconds (default: 100).--cyclictest-buckets NUMโ Histogram width (default: 3500).--cyclictest-priority PRIOโ Runcyclictestwith the given priority (default: 95).--cyclictest-breaktrace USECโ Send a break trace command when latency > USEC.--cyclictest-threshold USECโ Exitrtevalif latency > USEC.
๐ง Timerlat Module Options
--timerlat-interval INTV_USโ Base interval or period of threads in microseconds (default: 100).--timerlat-priority PRIOโ Runrtla timerlatwith this priority (default: 95).--timerlat-buckets NUMโ Number of histogram buckets (default: 3500).--timerlat-stoptrace USECโ Stop trace if thread latency higher than USEC.--timerlat-trace FILEโ File to save trace to.--timerlat-dma_latency USECโ Set/dev/cpu_dma_latencyto USEC (set toNoneto disable) (default: 0).
๐ Hackbench Load Module Options
--hackbench-jobspercore NUMโ Number of working threads per CPU core (default: 5).--hackbench-runlowmem True|Falseโ Runhackbenchon machines where low memory is detected.
๐ Kcompile Load Module Options
--kcompile-source TARBALLโ Source tar ball (default:linux-6.17.7.tar.xz).--kcompile-jobspercore NUMโ Number of working threads per core (default: 2).
๐ Stress-ng Load Module Options
--stressng-option OPTIONโ Stressor specific option.--stressng-arg ARGโ Stressor specific arg.--stressng-timeout Tโ Timeout after T seconds.
๐ฅ Report Analysis Options
-H,--raw-histogram XMLFILE [XMLFILE ...]โ Generate raw histogram data for one or more already existing XML reports.-Z,--summarize XMLFILE [XMLFILE ...]โ Summarize one or more already existing XML reports.-S,--source-download [KERNEL_VERSION]โ Download a source kernel from kernel.org and exit.
๐ EXAMPLES ๐
๐ธ Basic Usage
Run a 60-second test with default settings (cyclictest measurement, kernel compile and hackbench loads):
sudo rteval
๐ฆ Long Duration Test
Run a 12-hour test with timerlat measurement:
sudo rteval -d 43200 --measurement-module timerlat
๐ Measurement Only
Run timerlat measurement without any load modules:
sudo rteval -d 600 --measurement-module timerlat --noload
โจ With Logging and Annotation
Run with logging enabled and add an annotation to the report:
sudo rteval -d 3600 -L -a "Testing kernel 6.17.7"
๐ CPU Isolation with Cpusets
Run with cpusets to isolate measurement on cores 0-3, loads on cores 4-15, and reserve core 0 for housekeeping:
sudo rteval --cpusets --measurement-cpulist 1-3 \
--loads-cpulist 4-15 --housekeeping 0
โญ Custom Timerlat Configuration
Run timerlat with custom interval and stop trace threshold:
sudo rteval -d 1800 --measurement-module timerlat \
--timerlat-interval 1000 --timerlat-stoptrace 100
๐ง Analyze Existing Reports
Summarize multiple existing XML reports:
rteval -Z rteval-20260601-1/summary.xml \
rteval-20260602-1/summary.xml
๐ FILES ๐
rteval-YYYYMMDD-N/โ Report directory created for each run, containing:summary.xmlโ XML report with system info, measurements, and statisticslogs/โ Directory containing measurement and load module logs (with-Loption)
๐ฅ MEASUREMENT MODULES ๐ฅ
cyclictestโ Measures scheduling latency by running high-prioritySCHED_FIFOthreads that sleep for a specified interval and measure wakeup latency. This is the traditional measurement tool for realtime Linux testing. the OG, the blueprint, the moment ๐timerlatโ Uses thertla(Real-Time Linux Analysis) tool'stimerlattracer to measure timer latency. This is a more modern approach that leverages kernel tracing infrastructure and can provide more detailed analysis of latency sources. new gen, ate and left no crumbs ๐
๐ธ LOAD MODULES ๐ธ
kcompileโ Performs parallel kernel compilation to create CPU and I/O load. Compiles withallmodconfigto maximize compilation work.hackbenchโ Scheduler stress test that creates pairs of threads exchanging data via pipes or sockets, exercising the kernel scheduler.stress-ngโ Flexible stress testing tool with many stressor options for CPU, memory, I/O, and more.
๐ NOTES ๐
Root privileges are required to runrtevalas it needs to set real-time scheduling priorities and access system resources. so like,sudoor it's not happening bestie ๐
For production testing, run for at least 12-24 hours to capture rare latency events. The default 60-second duration is only suitable for quick validation.
When using cpusets (--cpusets), ensure your kernel has cgroup v2 support and the cpuset controller is available.
Thetimerlatmeasurement module requires a kernel withrtlasupport (kernel 5.15+ withCONFIG_OSNOISE_TRACERenabled).
๐ SEE ALSO ๐
cyclictest(8), rtla(1), rtla-timerlat(1), stress-ng(1)
๐ซถ AUTHORS ๐ซถ
rteval was written by Clark Williams, David Sommerseth, and John Kacur.
This manual page was written for rteval 3.10 in June 2026.
๐ญ REPORTING BUGS ๐ญ
Report bugs to linux-rt-users@vger.kernel.org
CC: John Kacur <jkacur at redhat.com>, Clark Williams <williams at redhat.com>
and that's the whole page, bestie. this was rteval 3.10, manual page dated June 2026, living in section 8 of the manual โ you're so welcome, go measure some latency ๐โจ
๐ฆ where this page comes from
- fedora 43: rteval 3.13-1.fc43 ยท GPL-2.0-only AND GPL-2.0-or-later
- fedora 44: rteval 3.13-1.fc44 ยท GPL-2.0-only AND GPL-2.0-or-later
- ๐ the page's license: GPL-2.0-or-later
- Copyright (C) 2009-2026 Red Hat Inc
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms