File: Configs/PerApp.yaml
PerApp.yaml lets you:
This allows URM to place high-priority threads into the focused cgroup automatically when a matching process is detected.
App: gst-launch-
Threads:
cam-server -> FOCUSED_CGROUP_IDENTIFIER
gst-launch- -> FOCUSED_CGROUP_IDENTIFIER
Both the camera server thread and the GStreamer launcher thread are placed in the focused cgroup when a gst-launch- process is detected.
App: cyclictest
Threads:
cyclictest -> FOCUSED_CGROUP_IDENTIFIER
Configurations: [0x00800001]
The cyclictest thread is placed in the focused cgroup. Resource 0x00800001 (RES_CPU_FREQ_GOV) is configurable per-app for cyclictest.
| Field | Description |
|---|---|
| App | Substring matched against the process name (from /proc/PID/comm) |
| Threads | List of thread-name to cgroup-identifier mappings |
| Configurations | Resource codes that can be tuned per-app for this process |
| Identifier | Cgroup | Description |
|---|---|---|
| FOCUSED_CGROUP_IDENTIFIER | Focused (foreground) cgroup | Highest priority; gets most CPU resources |
URM reads /proc/pid/task/tid/comm for each thread of the process. If the thread name contains the configured substring (case-insensitive), the thread is moved to the specified cgroup.
Example: Thread comm: gst-launch-1.0 Config key: gst-launch- Match: YES (substring match)
To add per-app configuration for a new process:
Add an entry to Configs/PerApp.yaml:
PerAppConfigs:
Reinstall the configs:
sudo cp Configs/PerApp.yaml /etc/urm/target/ sudo systemctl restart urmserver
PerApp.yaml works alongside SignalsConfig.yaml:
For example, when gst-launch-1.0 sends URM_SIG_CAMERA_ENCODE: