[PATCH 0/6] rteval: Improve CPU management infrastructure and add housekeeping option

John Kacur
2026-04-17T19:51:33Z

This patch series enhances rteval's CPU management capabilities by adding
cgroup v2 cpuset support, refactoring CPU list handling, and introducing
a new --housekeeping option for finer control over isolated CPU usage.

The series includes:

1. A new cpuset module providing comprehensive cgroup v2 cpuset management
with support for cpuset.cpus.partition and modern Linux interfaces

2. A minor test fix for the xmlout unit test XSL file path

3. A new CpuList class that provides an object-oriented interface for CPU
list manipulation while maintaining backward compatibility with existing
module-level functions

4. Migration of existing code to use the new CpuList class where it adds
value (chaining, filtering) while keeping functional interfaces for
simple operations

5. Comprehensive unit tests for the CpuList class covering all major
functionality

6. A new --housekeeping option that allows users to reserve specific
isolated CPUs for system housekeeping tasks, preventing rteval's
measurement and load modules from using them

The --housekeeping feature is particularly useful for systems with isolated
CPUs where some cores need to handle essential system tasks while the rest
are dedicated to real-time workloads.

All changes maintain backward compatibility and existing tests pass.

John Kacur

John Kacur (6):
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-cmd | 62 ++++-
rteval/cpulist_utils.py | 161 +++++++++++-
rteval/cpupower.py | 4 +-
rteval/cpuset.py | 350 +++++++++++++++++++++++++
rteval/modules/loads/__init__.py | 7 +-
rteval/modules/loads/hackbench.py | 9 +-
rteval/modules/loads/kcompile.py | 14 +-
rteval/modules/loads/stressng.py | 8 +-
rteval/modules/measurement/__init__.py | 6 +-
rteval/systopology.py | 52 ++--
rteval/xmlout.py | 4 +-
tests/test_cpulist_class.py | 121 +++++++++
12 files changed, 738 insertions(+), 60 deletions(-)
create mode 100755 rteval/cpuset.py
create mode 100644 tests/test_cpulist_class.py

--
2.53.0