RTLA-OSNOISE-HIST(1)
π RTLA-OSNOISE-HIST(1) π
okay so bestie, welcome to the manual page for rtla-osnoise-hist β it lives in the General Commands Manual section of your friendly neighbourhood man setup, and it is lowkey one of the most useful pages in the whole rtla girlie universe. let's get into it π«Ά
πΈ NAME πΈ
rtla-osnoise-hist β Display a histogram of the osnoise tracer samples β¨
π¦ SYNOPSIS π¦
rtla osnoise hist [OPTIONS]
β¨ DESCRIPTION β¨
So rtla osnoise</p> is basically the ~interface~ to the osnoise tracer, right? And the osnoise tracer does this iconic thing where it dispatches a kernel thread per-cpu. Those threads just sit there reading the time in a loop, but with preemption, softirq and IRQs enabled β which is the whole point, because that lets every single source of operating system noise sneak in while they're executing. very main character of them π
The osnoise tracer's threads keep notes on the delta between each time read, plus an interference counter of all the sources of interference. Then, at the end of every period, the osnoise tracer shows you a lil summary of the results. cute, right?
Now rtla osnoise hist</p> β this tool β collects every single osnoise:sample_threshold occurrence into a histogram, and displays the results in a user-friendly way β¨. And because she's generous, the tool also lets you configure the osnoise tracer in a whole bunch of ways and collect the tracer output. obsessed.
π OPTIONS π
-a,--autous β Sets the automatic trace mode, bestie. This mode sets some commonly used options while you're out here debugging the system. It is equivalent to using-s us -T 1 -t.-p,--periodus β Set the osnoise tracer period in microseconds.-r,--runtimeus β Set the osnoise tracer runtime in microseconds.-s,--stopus β Stop the trace if a single sample is higher than the argument, in microseconds. If-Tis set, it will also save the trace to the output.-S,--stop-totalus β Stop the trace if the total sample is higher than the argument, in microseconds. If-Tis set, it will also save the trace to the output.-T,--thresholdus β Specify the minimum delta between two time reads to be considered noise. The default threshold is5 us. π-t,--trace[file] β Save the stopped trace to[file|osnoise_trace.txt].-b,--bucket-sizeN β Set the histogram bucket size (default1).-E,--entriesN β Set the number of entries of the histogram (default256).--no-headerβ Do not print header. π--no-summaryβ Do not print summary.--no-indexβ Do not print index.--with-zerosβ Print zero only entries.-c,--cpuscpu-list β Set the osnoise hist tracer to run the sample threads in the cpu-list.
By default, the osnoise hist tracer runs the sample threads on all CPUs.
-H,--house-keepingcpu-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,--durationtime[s|m|h|d] β Set the duration of the session. β°-D,--debugβ Print debug info.-e,--eventsys:event β Enable an event in the-tsession. 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-eare allowed. It is only active when-tor-aare set. π--filter<filter> β Filter the previous-e sys:eventevent with <filter>. For further information about event filtering seehttps://www.kernel.org/doc/html/latest/trace/events.html#event-filtering.--trigger<trigger> β Enable a trace event trigger to the previous-e sys:event. If thehist:trigger is activated, the output histogram will be automatically saved to a file namedsystem_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 .
-P,--priorityo:prio|r:prio|f:prio|d:runtime:period β Set scheduling parameters to the osnoise hist tracer threads. The format to set the priority are:o:prioβ useSCHED_OTHERwithprio;r:prioβ useSCHED_RRwithprio;f:prioβ useSCHED_FIFOwithprio;d:runtime[us|ms|s]:period[us|ms|s]β useSCHED_DEADLINEwithruntimeandperiodin 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-Coption 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-ups β 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-sizekB β Set the per-cpu trace buffer size in kB for the tracing output.
If not set, the default tracefs buffer size is used.
--on-thresholdaction β Defines an action to be executed when tracing is stopped on a latency threshold specified by-a/--auto,-s/--stop, or-S/--stop-total.
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.
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 osnoise hist -s 20 --on-threshold trace --on-threshold
shell,command="grep ipi_send osnoise_trace.txt" --on-threshold
signal,num=2,pid=parent
This will save a trace with the default filename "osnoise_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:
Due to implementational limitations, actions might be delayed up to one second after tracing is stopped. π
--on-endaction β 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 osnoise hist -d 5s --on-end trace
This runs rtla with the default options, and saves trace output at the end. π
-h,--helpβ Print help menu.
π EXAMPLE π
In the example below, osnoise tracer threads are set to run with real-time priority FIFO:1, on CPUs 0-11, for 900ms at each period (1s by default). The reason for reducing the runtime is to avoid starving the rtla tool. The tool is also set to run for one minute. The output histogram is set to group outputs in buckets of 10us and 25 entries:
[root@f34 ~/]# rtla osnoise hist -P F:1 -c 0-11 -r 900000 -d 1M -b 10 -E 25
# RTLA osnoise histogram
# Time unit is microseconds (us)
# Duration: 0 00:01:00
Index CPU-000 CPU-001 CPU-002 CPU-003 CPU-004 CPU-005 CPU-006 CPU-007 CPU-008 CPU-009 CPU-010 CPU-011
0 42982 46287 51779 53740 52024 44817 49898 36500 50408 50128 49523 52377
10 12224 8356 2912 878 2667 10155 4573 18894 4214 4836 5708 2413
20 8 5 12 2 13 24 20 41 29 53 39 39
30 1 1 0 0 10 3 6 19 15 31 30 38
40 0 0 0 0 0 4 2 7 2 3 8 11
50 0 0 0 0 0 0 0 0 0 1 1 2
over: 0 0 0 0 0 0 0 0 0 0 0 0
count: 55215 54649 54703 54620 54714 55003 54499 55461 54668 55052 55309 54880
min: 0 0 0 0 0 0 0 0 0 0 0 0
avg: 0 0 0 0 0 0 0 0 0 0 0 0
max: 30 30 20 20 30 40 40 40 40 50 50 50
π«Ά SEE ALSO π«Ά
rtla-osnoise(1),rtla-osnoise-top(1)- Osnoise tracer
https://docs.kernel.org/trace/osnoise-tracer.html
π AUTHOR π
Written by Daniel Bristot de Oliveira < bristot@kernel.org > π
π SIGINT BEHAVIOR π
On the first SIGINT, RTLA exits after collecting all outstanding samples up to the point of receiving the signal.
When receiving more than one SIGINT, RTLA discards any outstanding samples, and exits while displaying only samples that have already been processed. π
If SIGINT is received during RTLA cleanup, RTLA exits immediately via the default signal handler.
Note: For the purpose ofSIGINTbehavior, the expiry of duration specified via the-d/--durationoption is treated as equivalent to receiving aSIGINT. For example, aSIGINTreceived after duration expired but samples have not been processed yet will drop any outstanding samples.
Also note that when using the timerlat tool in BPF mode, samples are processed in-kernel; RTLA only copies them out to display them to the user. A second SIGINT does not affect in-kernel sample aggregation. π§
β EXIT STATUS β
0β Passed: the test did not hit the stop tracing condition β1β Error: invalid argument π2β Failed: the test hit the stop tracing condition π129β Help: either user requested help or incorrect option was specified π
π REPORTING BUGS π
Report bugs to < linux-kernel@vger.kernel.org > and < linux-trace-devel@vger.kernel.org >
π LICENSE π
okay so the legal tea, bestie, but make it cute:
rtla is Free Software, and it's licensed under the GNU GPLv2. that's it, that's the whole vibe. free as in freedom, fr fr. π
Β©οΈ COPYING Β©οΈ
here's the receipts:
- Copyright (C) 2021 Red Hat, Inc.
- Free use of this software is granted under the terms of the GNU Public License (GPL).
so yeah β you can use it, share it, remix it, all of it, as long as you play by the GPL's rules. no gatekeeping here, we're all in the group chat together π«Άβ¨
ngl, always read the actual license text if you're doing anything serious with it β this is the summary vibe, not the legal document π
and that's a wrap on rtla-osnoise-hist(1) bestie!! π you made it all the way to the bottom of the page, which is honestly main character energy π this footer is giving RTLA-OSNOISE-HIST(1) from the rtla package, and it's dated May 2022 π¦ so go forth, trace those OS noise events, and slay β¨π
π¦ where this page comes from
- fedora 43: rtla 7.2.11-100.fc43
- fedora 43: rtla 7.2.14-100.fc43 Β· ((GPL-2.0-only WITH Linux-syscall-note) OR CDDL-1.0) AND ((GPL-2.0-only WITH Linux-syscall-note) OR Linux-OpenIB) AND 0BSD AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-3-Clause-Clear AND CC0-1.0 AND GFDL-1.1-no-invariants-or-later AND GPL-1.0-or-later AND (GPL-1.0-or-later WITH Linux-syscall-note) AND GPL-2.0-only AND (GPL-2.0-only OR CDDL-1.0) AND (GPL-2.0-only OR GFDL-1.2-no-invariants-only) AND (GPL-2.0-only OR GFDL-1.2-no-invariants-or-later) AND (GPL-2.0-only WITH Linux-syscall-note) AND GPL-2.0-or-later AND (GPL-2.0-or-later OR CC-BY-4.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH Linux-syscall-note) AND ISC AND LGPL-2.0-or-later AND (LGPL-2.0-or-later WITH Linux-syscall-note) AND LGPL-2.1-only AND (LGPL-2.1-only WITH Linux-syscall-note) AND LGPL-2.1-or-later AND (LGPL-2.1-or-later WITH Linux-syscall-note) AND (Linux-OpenIB OR GPL-2.0-only) AND (Linux-OpenIB OR GPL-2.0-only OR BSD-2-Clause) AND Linux-man-pages-copyleft AND MIT AND (MPL-1.1 OR GPL-2.0-only) AND (X11 OR GPL-2.0-only) AND (X11 OR GPL-2.0-or-later) AND Zlib AND (copyleft-next-0.3.1 OR GPL-2.0-or-later)
- fedora 43: rtla 7.2.15-100.fc43 Β· ((GPL-2.0-only WITH Linux-syscall-note) OR CDDL-1.0) AND ((GPL-2.0-only WITH Linux-syscall-note) OR Linux-OpenIB) AND 0BSD AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-3-Clause-Clear AND CC0-1.0 AND GFDL-1.1-no-invariants-or-later AND GPL-1.0-or-later AND (GPL-1.0-or-later WITH Linux-syscall-note) AND GPL-2.0-only AND (GPL-2.0-only OR CDDL-1.0) AND (GPL-2.0-only OR GFDL-1.2-no-invariants-only) AND (GPL-2.0-only OR GFDL-1.2-no-invariants-or-later) AND (GPL-2.0-only WITH Linux-syscall-note) AND GPL-2.0-or-later AND (GPL-2.0-or-later OR CC-BY-4.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH Linux-syscall-note) AND ISC AND LGPL-2.0-or-later AND (LGPL-2.0-or-later WITH Linux-syscall-note) AND LGPL-2.1-only AND (LGPL-2.1-only WITH Linux-syscall-note) AND LGPL-2.1-or-later AND (LGPL-2.1-or-later WITH Linux-syscall-note) AND (Linux-OpenIB OR GPL-2.0-only) AND (Linux-OpenIB OR GPL-2.0-only OR BSD-2-Clause) AND Linux-man-pages-copyleft AND MIT AND (MPL-1.1 OR GPL-2.0-only) AND (X11 OR GPL-2.0-only) AND (X11 OR GPL-2.0-or-later) AND Zlib AND (copyleft-next-0.3.1 OR GPL-2.0-or-later)
- fedora 43: rtla 7.2.9-100.fc43
- π the page's license: GPL-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms