| 1 | The **rtla timerlat** tool is an interface for the *timerlat* tracer. The |
| 2 | *timerlat* tracer dispatches a kernel thread per-cpu. These threads |
| 3 | set a periodic timer to wake themselves up and go back to sleep. After |
| 4 | the wakeup, they collect and generate useful information for the |
| 5 | debugging of operating system timer latency. |
| 6 | |
| 7 | The *timerlat* tracer outputs information in two ways. It periodically |
| 8 | prints the timer latency at the timer *IRQ* handler and the *Thread* |
| 9 | handler. It also enables the trace of the most relevant information via |
| 10 | **osnoise:** tracepoints. |
| 11 | |
| 12 | The **rtla timerlat** tool sets the options of the *timerlat* tracer |
| 13 | and collects and displays a summary of the results. By default, |
| 14 | the collection is done synchronously in kernel space using a dedicated |
| 15 | BPF program attached to the *timerlat* tracer. If either BPF or |
| 16 | the **osnoise:timerlat_sample** tracepoint it attaches to is |
| 17 | unavailable, the **rtla timerlat** tool falls back to using tracefs to |
| 18 | process the data asynchronously in user space. |