This is a snap packaging of rt-tests, a set of programs to test various real-time Linux features.
The programs include:
- cyclicdeadline
- cyclictest
- deadline_test as
deadline-test
in this snap - hackbench
- hwlatdetect
- oslat
- pi_stress as
pi-stress
in this snap - pip_stress as
pip-stress
in this snap - pmqtest
- ptsematest
- queuelat
- rt-migrate-test
- signaltest
- sigwaittest
- ssdd - Works only when the snap is installed in devmode; see #12
- svsematest
This snap is under development. Refer here for the list of known issues.
To install it:
sudo snap install rt-tests
It's necessary to connect:
- process-control interface;
- mount-observe interface;
- system-trace interface;
sys-kernel-debug-sched-features
plug into the system-files interface;
sudo snap connect rt-tests:process-control
sudo snap connect rt-tests:mount-observe
sudo snap connect rt-tests:system-trace
sudo snap connect rt-tests:sys-kernel-debug-sched-features
Note
- The
sys-kernel-debug-sched-features
interface gets auto-connected when installed from the store. - The
pmqtest
app is granted access to use POSIX message queues via the posix-mq interface. - The
shared-memory
interface is also auto-connected. For more details, refer to the shared-memory interface documentation.
The program commands are available within the snap's namespace.
For example, the command for cyclictest
is rt-tests.cyclictest
:
On a Raspberry Pi 5 running Real-time Ubuntu 24.04:
$ sudo rt-tests.cyclictest --mlockall --smp --priority=80 --interval=200 --distance=0 --loops=100000
WARN: open /dev/cpu_dma_latency: Operation not permitted
ERROR: shm_open Permission denied
policy: fifo: loadavg: 0.66 0.49 0.33 1/198 3722
T: 0 ( 3719) P:80 I:200 C: 100000 Min: 3 Act: 5 Avg: 5 Max: 26
T: 1 ( 3720) P:80 I:200 C: 99957 Min: 2 Act: 5 Avg: 5 Max: 19
T: 2 ( 3721) P:80 I:200 C: 99919 Min: 3 Act: 6 Avg: 5 Max: 22
T: 3 ( 3722) P:80 I:200 C: 99875 Min: 3 Act: 6 Avg: 5 Max: 18
You can add aliases to run the program commands without the namespace. For example:
$ sudo snap alias rt-tests.cyclictest cyclictest
Added:
- rt-tests.cyclictest as cyclictest
$ which cyclictest
/snap/bin/cyclictest
Run the following commands to add aliases for all the programs, effectively making them available under the same names as if they were installed using the Debian package:
sudo snap alias rt-tests.cyclictest cyclictest
sudo snap alias rt-tests.cyclicdeadline cyclicdeadline
sudo snap alias rt-tests.deadline-test deadline_test
sudo snap alias rt-tests.get-cyclictest-snapshot get-cyclictest-snapshot
sudo snap alias rt-tests.hackbench hackbench
sudo snap alias rt-tests.hwlatdetect hwlatdetect
sudo snap alias rt-tests.oslat oslat
sudo snap alias rt-tests.pip-stress pip_stress
sudo snap alias rt-tests.pi-stress pi_stress
sudo snap alias rt-tests.pmqtest pmqtest
sudo snap alias rt-tests.ptsematest ptsematest
sudo snap alias rt-tests.queuelat queuelat
sudo snap alias rt-tests.rt-migrate-test rt-migrate-test
sudo snap alias rt-tests.signaltest signaltest
sudo snap alias rt-tests.sigwaittest sigwaittest
sudo snap alias rt-tests.ssdd ssdd
sudo snap alias rt-tests.svsematest svsematest
Firstly, build it using Snapcraft:
snapcraft -v
Then, install it in dangerous mode:
sudo snap install --dangerous *.snap