[ANNOUNCE] rteval-v3.11
From: John Kacur
Date: Thu Jun 04 2026 - 14:23:13 EST
rteval 3.11 Release Highlights:
Major New Features:
* cpuset support for cgroup v2 management - This is the biggest addition
- New cpuset module and cpusetmanager for CPU isolation
- --housekeeping option to reserve isolated CPUs
- --cleanup-cpusets flag to remove leftover cpusets
- Comprehensive test suite (732 lines of cpuset tests)
* Core sharing validation - New CPU topology awareness
- Warns when measurement and load threads share CPU cores
- --warn-non-isolated-core-sharing option
- CoreSiblings class for topology queries
Critical Bug Fixes:
* Fix timerlat and cyclictest error handling to prevent hangs
* Fix timerlat module for rtla short option parsing bug
New Features:
* -L/--logging support added to both timerlat and cyclictest measurement modules
Code Quality & Testing:
* Major testing improvements - regression tests, reorganized unit tests, e2e test fixes
* New CpuList class with comprehensive unit tests for better CPU list handling
Documentation:
* Modernized documentation - updated man page (398 lines changed), new README-tests,
added make uninstall target
Stats: 44 files changed, 4305 insertions, 517 deletions
To fetch
Clone
git://git.kernel.org/pub/scm/utils/rteval/rteval.git
Branch: main
Tag: v3.11
Tarballs available here:
https://kernel.org/pub/linux/utils/rteval
Older version tarballs are available here:
https://kernel.org/pub/linux/utils/rteval/older
To accommodate distributions that require this, I have linked the last
version v3.10 from the older directory to the current directory
Bug reports, patches, etc are always welcome.
Enjoy!
John Kacur (37):
rteval: Add cpuset module for cgroup v2 management
rteval: Fix xmlout unit test XSL file path
rteval: Add CpuList class to cpulist_utils module
rteval: Migrate call sites to use CpuList class where beneficial
rteval: Add unit tests for CpuList class
rteval: Add --housekeeping option to reserve isolated CPUs
rteval: Add CoreSiblings class for CPU core topology queries
rteval: Add core sharing validation for CPU isolation
rteval: Include core sharing warnings in XML report
rteval: Add temporary test for core sharing validation with mocked
isolated CPUs
rteval: Display core sharing warnings in text report
rteval: Add --warn-non-isolated-core-sharing option for measurement vs
load warnings
rteval: Include --warn-non-isolated-core-sharing warnings in XML
report
rteval: Clean timestamped test run directories in make clean
rteval: Remove executable permission from cpuset.py
rteval: Add cpuset integration infrastructure (WIP)
rteval: Add --cleanup-cpusets flag to remove leftover cpusets
rteval: Reorganize command-line arguments into logical groups
rteval: Simplify cpuset implementation to match isolcpus philosophy
rteval: Add local/ directory to .gitignore for development files
rteval: Update cpuset documentation to reflect simplified
implementation
rteval: Warn when all CPUs isolated and loads have no CPUs
rteval: Fix timerlat error handling to prevent hangs
rteval: Fix cyclictest error handling to prevent hangs
rteval: Update config files to clarify measurement module selection
rteval: Add regression tests for measurement module error handling
rteval: Fix e2e test patterns for current rteval behavior
rteval: Refactor core sharing validation test into proper unittest
rteval: Rename unittest target to unit-tests for consistency
rteval: Organize cpuset tests and make core sharing tests skip
gracefully
rteval: Move run_tests.sh to tests/ and remove obsolete test scripts
rteval: Add -L/--logging support to timerlat measurement module
rteval: Add -L/--logging support to cyclictest measurement module
rteval: Fix timerlat module for rtla short option parsing bug
rteval: Modernize documentation
rteval: Add make uninstall target and fix pyproject.toml license
Create rteval-3.11
Tomas Glozar (2):
rteval: Move unittest.py to tests/unittest-legacy.py
rteval: Add README-tests
.gitignore | 2 +
Makefile | 79 +-
README | 122 ++-
README-tests | 102 +++
doc/installing.txt | 23 -
doc/{rteval.txt => rteval-legacy.txt} | 2 +
doc/rteval.8 | 398 +++++++---
pyproject.toml | 2 +-
rteval-cmd | 261 +++++--
rteval.conf | 5 +-
rteval/__init__.py | 12 +-
rteval/cpulist_utils.py | 161 +++-
rteval/cpupower.py | 4 +-
rteval/cpuset.py | 350 +++++++++
rteval/cpusetmanager.py | 224 ++++++
rteval/modules/__init__.py | 30 +
rteval/modules/loads/__init__.py | 7 +-
rteval/modules/loads/hackbench.py | 10 +-
rteval/modules/loads/kcompile.py | 15 +-
rteval/modules/loads/stressng.py | 8 +-
rteval/modules/measurement/__init__.py | 6 +-
rteval/modules/measurement/cyclictest.py | 172 ++--
rteval/modules/measurement/timerlat.py | 388 ++++++----
rteval/rteval.conf | 12 +
rteval/rteval_text.xsl | 13 +-
rteval/sysinfo/__init__.py | 3 +
rteval/sysinfo/coresiblings.py | 116 +++
rteval/sysinfo/cputopology.py | 35 +
rteval/systopology.py | 116 ++-
rteval/version.py | 2 +-
rteval/xmlout.py | 4 +-
tests/cpusets/README.md | 199 +++++
tests/cpusets/test-cpusets.sh | 732 ++++++++++++++++++
tests/e2e/loads.t | 6 +-
tests/e2e/measurement.t | 4 +-
tests/regression/README.md | 155 ++++
.../mock-cyclictest-partial-output.py | 165 ++++
.../mock-rtla-timerlat-partial-output.py | 138 ++++
.../test-cyclictest-error-handling.sh | 225 ++++++
.../test-timerlat-error-handling.sh | 228 ++++++
run_tests.sh => tests/run_tests.sh | 10 +-
tests/test_core_sharing_validation.py | 155 ++++
tests/test_cpulist_class.py | 121 +++
.../unittest.py => tests/unittest-legacy.py | 0
44 files changed, 4305 insertions(+), 517 deletions(-)
create mode 100644 README-tests
delete mode 100644 doc/installing.txt
rename doc/{rteval.txt => rteval-legacy.txt} (99%)
create mode 100644 rteval/cpuset.py
create mode 100644 rteval/cpusetmanager.py
create mode 100644 rteval/sysinfo/coresiblings.py
create mode 100644 tests/cpusets/README.md
create mode 100755 tests/cpusets/test-cpusets.sh
create mode 100644 tests/regression/README.md
create mode 100755 tests/regression/mock-cyclictest-partial-output.py
create mode 100755 tests/regression/mock-rtla-timerlat-partial-output.py
create mode 100755 tests/regression/test-cyclictest-error-handling.sh
create mode 100755 tests/regression/test-timerlat-error-handling.sh
rename run_tests.sh => tests/run_tests.sh (87%)
create mode 100755 tests/test_core_sharing_validation.py
create mode 100644 tests/test_cpulist_class.py
rename unit-tests/unittest.py => tests/unittest-legacy.py (100%)
--
2.54.0