| **-c**, **--cpus** *cpu-list* | |
| Set the |tool| tracer to run the sample threads in the cpu-list. | |
| By default, the |tool| tracer runs the sample threads on all CPUs. | |
| **-H**, **--house-keeping** *cpu-list* | |
| Run rtla control threads only on the given cpu-list. | |
| If omitted, rtla will attempt to auto-migrate its main thread to any CPU that is not running any workload threads. | |
| **-d**, **--duration** *time[s|m|h|d]* | |
| Set the duration of the session. | |
| **-D**, **--debug** | |
| Print debug info. | |
| **-e**, **--event** *sys:event* | |
| Enable an event in the trace (**-t**) session. The argument can be a specific event, e.g., **-e** *sched:sched_switch*, or all events of a system group, e.g., **-e** *sched*. Multiple **-e** are allowed. It is only active when **-t** or **-a** are set. | |
| This option cannot be unset. | |
| **--filter** *<filter>* | |
| Filter the previous **-e** *sys:event* event with *<filter>*. For further information about event filtering see https://www.kernel.org/doc/html/latest/trace/events.html#event-filtering. | |
| This option cannot be unset. | |
| **--trigger** *<trigger>* | |
| Enable a trace event trigger to the previous **-e** *sys:event*. | |
| If the *hist:* trigger is activated, the output histogram will be automatically saved to a file named *system_event_hist.txt*. | |
| For example, the command: | |
| rtla <command> <mode> -t -e osnoise:irq_noise --trigger="hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcount" | |
| Will automatically save the content of the histogram associated to *osnoise:irq_noise* event in *osnoise_irq_noise_hist.txt*. | |
| For further information about event trigger see https://www.kernel.org/doc/html/latest/trace/events.html#event-triggers. | |
| This option cannot be unset. | |
| **-P**, **--priority** *o:prio|r:prio|f:prio|d:runtime:period* | |
| Set scheduling parameters to the |tool| tracer threads, the format to set the priority are: | |
| - *o:prio* - use SCHED_OTHER with *prio*; | |
| - *r:prio* - use SCHED_RR with *prio*; | |
| - *f:prio* - use SCHED_FIFO with *prio*; | |
| - *d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds. | |
| If not set, tracer threads keep their default priority. For rtla user threads, it is set to SCHED_FIFO with priority 95. For kernel threads, see *osnoise* and *timerlat* tracer documentation for the running kernel version. | |
| **-C**, **--cgroup** \[*cgroup*] | |
| Set a *cgroup* to the tracer's threads. If the **-C** option is passed without arguments, the tracer's thread will inherit **rtla**'s *cgroup*. Otherwise, the threads will be placed on the *cgroup* passed to the option. | |
| If not set, the behavior differs between workload types. User workloads created by rtla will inherit rtla's cgroup. Kernel workloads are assigned the root cgroup. | |
| **--warm-up** *s* | |
| After starting the workload, let it run for *s* seconds before starting collecting the data, allowing the system to warm-up. Statistical data generated during warm-up is discarded. | |
| **--trace-buffer-size** *kB* | |
| Set the per-cpu trace buffer size in kB for the tracing output. | |
| If not set, the default tracefs buffer size is used. | |
| **--on-threshold** *action* | |
| Defines an action to be executed when tracing is stopped on a latency threshold | |
| specified by |threshold|. | |
| Multiple --on-threshold actions may be specified, and they will be executed in | |
| the order they are provided. If any action fails, subsequent actions in the list | |
| will not be executed. | |
| Supported actions are: | |
| - *trace[,file=<filename>]* | |
| Saves trace output, optionally taking a filename. Alternative to -t/--trace. | |
| Note that unlike -t/--trace, specifying this multiple times will result in | |
| the trace being saved multiple times, and --no-trace will not disable trace | |
| output when enabled through this option. | |
| - *signal,num=<sig>,pid=<pid>* | |
| Sends signal to process. "parent" might be specified in place of pid to target | |
| the parent process of rtla. | |
| - *shell,command=<command>* | |
| Execute shell command. | |
| - *continue* | |
| Continue tracing after actions are executed instead of stopping. | |
| Example: | |
| $ rtla |tool| |thresharg| 20 --on-threshold trace | |
| --on-threshold shell,command="grep ipi_send |tracer|\_trace.txt" | |
| --on-threshold signal,num=2,pid=parent | |
| This will save a trace with the default filename "|tracer|\_trace.txt", print its | |
| lines that contain the text "ipi_send" on standard output, and send signal 2 | |
| (SIGINT) to the parent process. | |
| Performance Considerations: | |
| |actionsperf| | |
| This option cannot be unset. | |
| **--on-end** *action* | |
| Defines an action to be executed at the end of tracing. | |
| Multiple --on-end actions can be specified, and they will be executed in the order | |
| they are provided. If any action fails, subsequent actions in the list will not be | |
| executed. | |
| See the documentation for **--on-threshold** for the list of supported actions, with | |
| the exception that *continue* has no effect. | |
| Example: | |
| $ rtla |tool| -d 5s --on-end trace | |
| This runs rtla with the default options, and saves trace output at the end. | |
| This option cannot be unset. | |
| **-h**, **--help** | |
| Print help menu. |