[ANNOUNCE] rteval-v3.11

John Kacur <[email protected]> Thu, 4 Jun 2026 14:21:56 -0400
Newsgroups org.kernel.vger.linux-rt-users,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
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