mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
tracing/histogram: Wrap remaining shell snippets in code blocks
Most shell command snippets (echo/cat) and their output are already in
literal code blocks. However a few still isn't wrapped, in which the
htmldocs output is ugly.
Wrap the remaining unwrapped snippets, while also fix recent kernel test
robot warnings.
Link: https://lore.kernel.org/linux-trace-kernel/20230129031402.47420-1-bagasdotme@gmail.com
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/linux-doc/202301290253.LU5yIxcJ-lkp@intel.com/
Fixes: 88238513bb
("tracing/histogram: Document variable stacktrace")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
committed by
Steven Rostedt (Google)
parent
b18c58af29
commit
a2ff84a5d1
@@ -1864,7 +1864,7 @@ A histogram can now be defined for the new synthetic event::
|
|||||||
The above shows the latency "lat" in a power of 2 grouping.
|
The above shows the latency "lat" in a power of 2 grouping.
|
||||||
|
|
||||||
Like any other event, once a histogram is enabled for the event, the
|
Like any other event, once a histogram is enabled for the event, the
|
||||||
output can be displayed by reading the event's 'hist' file.
|
output can be displayed by reading the event's 'hist' file::
|
||||||
|
|
||||||
# cat /sys/kernel/debug/tracing/events/synthetic/wakeup_latency/hist
|
# cat /sys/kernel/debug/tracing/events/synthetic/wakeup_latency/hist
|
||||||
|
|
||||||
@@ -1911,7 +1911,7 @@ output can be displayed by reading the event's 'hist' file.
|
|||||||
|
|
||||||
|
|
||||||
The latency values can also be grouped linearly by a given size with
|
The latency values can also be grouped linearly by a given size with
|
||||||
the ".buckets" modifier and specify a size (in this case groups of 10).
|
the ".buckets" modifier and specify a size (in this case groups of 10)::
|
||||||
|
|
||||||
# echo 'hist:keys=pid,prio,lat.buckets=10:sort=lat' >> \
|
# echo 'hist:keys=pid,prio,lat.buckets=10:sort=lat' >> \
|
||||||
/sys/kernel/debug/tracing/events/synthetic/wakeup_latency/trigger
|
/sys/kernel/debug/tracing/events/synthetic/wakeup_latency/trigger
|
||||||
@@ -1945,7 +1945,7 @@ the ".buckets" modifier and specify a size (in this case groups of 10).
|
|||||||
|
|
||||||
To save stacktraces, create a synthetic event with a field of type "unsigned long[]"
|
To save stacktraces, create a synthetic event with a field of type "unsigned long[]"
|
||||||
or even just "long[]". For example, to see how long a task is blocked in an
|
or even just "long[]". For example, to see how long a task is blocked in an
|
||||||
uninterruptible state:
|
uninterruptible state::
|
||||||
|
|
||||||
# cd /sys/kernel/tracing
|
# cd /sys/kernel/tracing
|
||||||
# echo 's:block_lat pid_t pid; u64 delta; unsigned long[] stack;' > dynamic_events
|
# echo 's:block_lat pid_t pid; u64 delta; unsigned long[] stack;' > dynamic_events
|
||||||
@@ -1990,7 +1990,8 @@ uninterruptible state:
|
|||||||
=> kthread+0xe9/0x110
|
=> kthread+0xe9/0x110
|
||||||
=> ret_from_fork+0x2c/0x50
|
=> ret_from_fork+0x2c/0x50
|
||||||
|
|
||||||
A synthetic event that has a stacktrace field may use it as a key in histogram:
|
A synthetic event that has a stacktrace field may use it as a key in
|
||||||
|
histogram::
|
||||||
|
|
||||||
# echo 'hist:delta.buckets=100,stack.stacktrace:sort=delta' > events/synthetic/block_lat/trigger
|
# echo 'hist:delta.buckets=100,stack.stacktrace:sort=delta' > events/synthetic/block_lat/trigger
|
||||||
# cat events/synthetic/block_lat/hist
|
# cat events/synthetic/block_lat/hist
|
||||||
@@ -2183,11 +2184,11 @@ The following commonly-used handler.action pairs are available:
|
|||||||
wakeup_new_test($testpid) if comm=="cyclictest"' >> \
|
wakeup_new_test($testpid) if comm=="cyclictest"' >> \
|
||||||
/sys/kernel/debug/tracing/events/sched/sched_wakeup_new/trigger
|
/sys/kernel/debug/tracing/events/sched/sched_wakeup_new/trigger
|
||||||
|
|
||||||
Or, equivalently, using the 'trace' keyword syntax:
|
Or, equivalently, using the 'trace' keyword syntax::
|
||||||
|
|
||||||
# echo 'hist:keys=$testpid:testpid=pid:onmatch(sched.sched_wakeup_new).\
|
# echo 'hist:keys=$testpid:testpid=pid:onmatch(sched.sched_wakeup_new).\
|
||||||
trace(wakeup_new_test,$testpid) if comm=="cyclictest"' >> \
|
trace(wakeup_new_test,$testpid) if comm=="cyclictest"' >> \
|
||||||
/sys/kernel/debug/tracing/events/sched/sched_wakeup_new/trigger
|
/sys/kernel/debug/tracing/events/sched/sched_wakeup_new/trigger
|
||||||
|
|
||||||
Creating and displaying a histogram based on those events is now
|
Creating and displaying a histogram based on those events is now
|
||||||
just a matter of using the fields and new synthetic event in the
|
just a matter of using the fields and new synthetic event in the
|
||||||
@@ -2320,48 +2321,48 @@ The following commonly-used handler.action pairs are available:
|
|||||||
resulting latency, stored in wakeup_lat, exceeds the current
|
resulting latency, stored in wakeup_lat, exceeds the current
|
||||||
maximum latency, a snapshot is taken. As part of the setup, all
|
maximum latency, a snapshot is taken. As part of the setup, all
|
||||||
the scheduler events are also enabled, which are the events that
|
the scheduler events are also enabled, which are the events that
|
||||||
will show up in the snapshot when it is taken at some point:
|
will show up in the snapshot when it is taken at some point::
|
||||||
|
|
||||||
# echo 1 > /sys/kernel/debug/tracing/events/sched/enable
|
# echo 1 > /sys/kernel/debug/tracing/events/sched/enable
|
||||||
|
|
||||||
# echo 'hist:keys=pid:ts0=common_timestamp.usecs \
|
# echo 'hist:keys=pid:ts0=common_timestamp.usecs \
|
||||||
if comm=="cyclictest"' >> \
|
if comm=="cyclictest"' >> \
|
||||||
/sys/kernel/debug/tracing/events/sched/sched_waking/trigger
|
/sys/kernel/debug/tracing/events/sched/sched_waking/trigger
|
||||||
|
|
||||||
# echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0: \
|
# echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0: \
|
||||||
onmax($wakeup_lat).save(next_prio,next_comm,prev_pid,prev_prio, \
|
onmax($wakeup_lat).save(next_prio,next_comm,prev_pid,prev_prio, \
|
||||||
prev_comm):onmax($wakeup_lat).snapshot() \
|
prev_comm):onmax($wakeup_lat).snapshot() \
|
||||||
if next_comm=="cyclictest"' >> \
|
if next_comm=="cyclictest"' >> \
|
||||||
/sys/kernel/debug/tracing/events/sched/sched_switch/trigger
|
/sys/kernel/debug/tracing/events/sched/sched_switch/trigger
|
||||||
|
|
||||||
When the histogram is displayed, for each bucket the max value
|
When the histogram is displayed, for each bucket the max value
|
||||||
and the saved values corresponding to the max are displayed
|
and the saved values corresponding to the max are displayed
|
||||||
following the rest of the fields.
|
following the rest of the fields.
|
||||||
|
|
||||||
If a snapshot was taken, there is also a message indicating that,
|
If a snapshot was taken, there is also a message indicating that,
|
||||||
along with the value and event that triggered the global maximum:
|
along with the value and event that triggered the global maximum::
|
||||||
|
|
||||||
# cat /sys/kernel/debug/tracing/events/sched/sched_switch/hist
|
# cat /sys/kernel/debug/tracing/events/sched/sched_switch/hist
|
||||||
{ next_pid: 2101 } hitcount: 200
|
{ next_pid: 2101 } hitcount: 200
|
||||||
max: 52 next_prio: 120 next_comm: cyclictest \
|
max: 52 next_prio: 120 next_comm: cyclictest \
|
||||||
prev_pid: 0 prev_prio: 120 prev_comm: swapper/6
|
prev_pid: 0 prev_prio: 120 prev_comm: swapper/6
|
||||||
|
|
||||||
{ next_pid: 2103 } hitcount: 1326
|
{ next_pid: 2103 } hitcount: 1326
|
||||||
max: 572 next_prio: 19 next_comm: cyclictest \
|
max: 572 next_prio: 19 next_comm: cyclictest \
|
||||||
prev_pid: 0 prev_prio: 120 prev_comm: swapper/1
|
prev_pid: 0 prev_prio: 120 prev_comm: swapper/1
|
||||||
|
|
||||||
{ next_pid: 2102 } hitcount: 1982 \
|
{ next_pid: 2102 } hitcount: 1982 \
|
||||||
max: 74 next_prio: 19 next_comm: cyclictest \
|
max: 74 next_prio: 19 next_comm: cyclictest \
|
||||||
prev_pid: 0 prev_prio: 120 prev_comm: swapper/5
|
prev_pid: 0 prev_prio: 120 prev_comm: swapper/5
|
||||||
|
|
||||||
Snapshot taken (see tracing/snapshot). Details:
|
Snapshot taken (see tracing/snapshot). Details:
|
||||||
triggering value { onmax($wakeup_lat) }: 572 \
|
triggering value { onmax($wakeup_lat) }: 572 \
|
||||||
triggered by event with key: { next_pid: 2103 }
|
triggered by event with key: { next_pid: 2103 }
|
||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
Hits: 3508
|
Hits: 3508
|
||||||
Entries: 3
|
Entries: 3
|
||||||
Dropped: 0
|
Dropped: 0
|
||||||
|
|
||||||
In the above case, the event that triggered the global maximum has
|
In the above case, the event that triggered the global maximum has
|
||||||
the key with next_pid == 2103. If you look at the bucket that has
|
the key with next_pid == 2103. If you look at the bucket that has
|
||||||
@@ -2439,15 +2440,15 @@ The following commonly-used handler.action pairs are available:
|
|||||||
$cwnd variable. If the value has changed, a snapshot is taken.
|
$cwnd variable. If the value has changed, a snapshot is taken.
|
||||||
As part of the setup, all the scheduler and tcp events are also
|
As part of the setup, all the scheduler and tcp events are also
|
||||||
enabled, which are the events that will show up in the snapshot
|
enabled, which are the events that will show up in the snapshot
|
||||||
when it is taken at some point:
|
when it is taken at some point::
|
||||||
|
|
||||||
# echo 1 > /sys/kernel/debug/tracing/events/sched/enable
|
# echo 1 > /sys/kernel/debug/tracing/events/sched/enable
|
||||||
# echo 1 > /sys/kernel/debug/tracing/events/tcp/enable
|
# echo 1 > /sys/kernel/debug/tracing/events/tcp/enable
|
||||||
|
|
||||||
# echo 'hist:keys=dport:cwnd=snd_cwnd: \
|
# echo 'hist:keys=dport:cwnd=snd_cwnd: \
|
||||||
onchange($cwnd).save(snd_wnd,srtt,rcv_wnd): \
|
onchange($cwnd).save(snd_wnd,srtt,rcv_wnd): \
|
||||||
onchange($cwnd).snapshot()' >> \
|
onchange($cwnd).snapshot()' >> \
|
||||||
/sys/kernel/debug/tracing/events/tcp/tcp_probe/trigger
|
/sys/kernel/debug/tracing/events/tcp/tcp_probe/trigger
|
||||||
|
|
||||||
When the histogram is displayed, for each bucket the tracked value
|
When the histogram is displayed, for each bucket the tracked value
|
||||||
and the saved values corresponding to that value are displayed
|
and the saved values corresponding to that value are displayed
|
||||||
@@ -2470,10 +2471,10 @@ The following commonly-used handler.action pairs are available:
|
|||||||
{ dport: 443 } hitcount: 211
|
{ dport: 443 } hitcount: 211
|
||||||
changed: 10 snd_wnd: 26960 srtt: 17379 rcv_wnd: 28800
|
changed: 10 snd_wnd: 26960 srtt: 17379 rcv_wnd: 28800
|
||||||
|
|
||||||
Snapshot taken (see tracing/snapshot). Details::
|
Snapshot taken (see tracing/snapshot). Details:
|
||||||
|
|
||||||
triggering value { onchange($cwnd) }: 10
|
triggering value { onchange($cwnd) }: 10
|
||||||
triggered by event with key: { dport: 80 }
|
triggered by event with key: { dport: 80 }
|
||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
Hits: 414
|
Hits: 414
|
||||||
|
Reference in New Issue
Block a user