[PATCH 0/7] tuna: Add cpuset save/apply functionality
John Kacur <[email protected]> Thu, 16 Jul 2026 13:45:43 -0400
| Newsgroups | org.kernel.vger.linux-rt-users |
|---|---|
| Message-ID | <[email protected]> |
This series adds save/apply functionality for cpuset configurations, allowing users to save their cpuset setup to YAML files and restore them after reboots or on other systems. This builds on earlier cpuset integration work and addresses a common use case: making cpuset configurations reproducible and portable across systems. While the primary use case is RT workloads, the functionality is general-purpose and works for any cpuset-based CPU partitioning scenario. Key features: - Save cpuset definitions to YAML (name, CPUs, memory nodes, partition type) - Apply profiles to recreate cpusets from YAML - Automatic filtering of system cpusets (systemd slices/scopes/services) - Idempotent application (warns if cpusets already exist) - Full round-trip testing (save → destroy → apply → verify) Example workflow: # Set up cpusets for isolated workload tuna cpuset create -c 4-7 -n isolated --isolated tuna cpuset create -c 0-3 -n housekeeping # Save configuration tuna cpuset save my-config.yaml # After reboot or on another system tuna cpuset apply my-config.yaml -v The series also includes some cleanup: - Removes obsolete top-level 'apply' command (not cpuset-specific) - Simplifies GUI sysctl configuration to monitoring-only - Removes unused translation files (po/*.po) - Fixes housekeeping cpuset default (partition=member is correct) - Renames default profile file to cpuset-profile.yaml for clarity Testing: - 12 comprehensive test cases in tests/test_save_apply.py - Tests cover: save/apply, round-trip, edge cases, error handling - All tests require root (cpuset operations) - Tested on Fedora with cgroup v2 John Kacur (7): tuna: Add --show-system flag to filter systemd cpusets tuna: Add cpuset save/apply functionality tuna: Add comprehensive tests for save/apply functionality tuna: Remove obsolete apply command functionality tuna: Simplify GUI to monitoring-only functionality tuna: Change housekeeping cpuset default to partition=member tuna: Change default profile filename to cpuset-profile.yaml po/LINGUAS | 3 - po/POTFILES.in | 17 - po/ja.po | 718 --------------------------------------- po/pt_BR.po | 634 ---------------------------------- po/zh_CN.po | 667 ------------------------------------ tests/README.md | 52 ++- tests/test_cpuset_cli.py | 30 +- tests/test_save_apply.py | 300 ++++++++++++++++ tuna-cmd.py | 247 +++++++------- tuna/config.py | 2 - tuna/gui/profileview.py | 4 +- tuna/profile.py | 177 ++++++++++ tuna/tuna_gui.glade | 8 +- 13 files changed, 661 insertions(+), 2198 deletions(-) delete mode 100644 po/LINGUAS delete mode 100644 po/POTFILES.in delete mode 100644 po/ja.po delete mode 100644 po/pt_BR.po delete mode 100644 po/zh_CN.po create mode 100644 tests/test_save_apply.py create mode 100644 tuna/profile.py -- 2.55.0