[bootlin/training-materials updates] master: debugging: slides: most profiling tools need root privileges (1a1975db)
Luca Ceresoli
luca.ceresoli at bootlin.com
Thu Aug 24 21:57:44 CEST 2023
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/1a1975db39161ed35d022154aaabe060c390189e
>---------------------------------------------------------------
commit 1a1975db39161ed35d022154aaabe060c390189e
Author: Luca Ceresoli <luca.ceresoli at bootlin.com>
Date: Thu Aug 24 11:10:02 2023 +0200
debugging: slides: most profiling tools need root privileges
Most of the examples in this sectionr equire root privileges, clarify that
with a '#' shell prompt..
Also use the 'console' minted formatting.
Signed-off-by: Luca Ceresoli <luca.ceresoli at bootlin.com>
>---------------------------------------------------------------
1a1975db39161ed35d022154aaabe060c390189e
.../debugging-system-wide-profiling.tex | 76 +++++++++++-----------
1 file changed, 38 insertions(+), 38 deletions(-)
diff --git a/slides/debugging-system-wide-profiling/debugging-system-wide-profiling.tex b/slides/debugging-system-wide-profiling/debugging-system-wide-profiling.tex
index e72008d0..6323b7f3 100644
--- a/slides/debugging-system-wide-profiling/debugging-system-wide-profiling.tex
+++ b/slides/debugging-system-wide-profiling/debugging-system-wide-profiling.tex
@@ -115,8 +115,8 @@ register_kretprobe(&probe);
\item List all events that matches \code{syscalls:*}
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\footnotesize]{C}
-$ perf list syscalls:*
+ \begin{minted}[fontsize=\footnotesize]{console}
+# perf list syscalls:*
List of pre-defined events (to be used in -e):
syscalls:sys_enter_accept [Tracepoint event]
@@ -132,8 +132,8 @@ List of pre-defined events (to be used in -e):
command into \code{perf.data} file.
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\footnotesize]{C}
-$ perf record -e syscalls:sys_enter_read sha256sum /bin/busybox
+ \begin{minted}[fontsize=\footnotesize]{console}
+# perf record -e syscalls:sys_enter_read sha256sum /bin/busybox
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.018 MB perf.data (215 samples) ]
\end{minted}
@@ -146,8 +146,8 @@ $ perf record -e syscalls:sys_enter_read sha256sum /bin/busybox
\item Display the collected samples ordered by time spent.
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\tiny]{C}
-$ perf report
+ \begin{minted}[fontsize=\tiny]{console}
+# perf report
Samples: 591 of event 'cycles', Event count (approx.): 393877062
Overhead Command Shared Object Symbol
22,88% firefox-esr [nvidia] [k] _nv031568rm
@@ -192,8 +192,8 @@ Overhead Command Shared Object Symbol
\item List all the kernel symbols that can be probed (no debug info needed):
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\scriptsize]{C}
-$ perf probe --funcs
+ \begin{minted}[fontsize=\scriptsize]{console}
+# perf probe --funcs
\end{minted}
\end{block}
\begin{itemize}
@@ -201,8 +201,8 @@ $ perf probe --funcs
named parameter (debug info required).
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\scriptsize]{C}
-$ perf probe --vmlinux=vmlinux_file do_sys_openat2 filename:string
+ \begin{minted}[fontsize=\scriptsize]{console}
+# perf probe --vmlinux=vmlinux_file do_sys_openat2 filename:string
Added new event:
probe:do_sys_openat2 (on do_sys_openat2 with filename:string)
\end{minted}
@@ -211,8 +211,8 @@ Added new event:
\item Execute \code{tail} and capture previously created probe event:
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\scriptsize]{C}
-$ perf record -e probe:do_sys_openat2 tail /var/log/messages
+ \begin{minted}[fontsize=\scriptsize]{console}
+# perf record -e probe:do_sys_openat2 tail /var/log/messages
...
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.003 MB perf.data (19 samples) ]
@@ -227,8 +227,8 @@ $ perf record -e probe:do_sys_openat2 tail /var/log/messages
\item Display the recorded tracepoints with {\em perf script}:
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\tiny]{C}
-$ perf script
+ \begin{minted}[fontsize=\tiny]{console}
+# perf script
tail 164 [000] 3552.956573: probe:do_sys_openat2: (c02c3750) filename_string="/etc/ld.so.cache"
tail 164 [000] 3552.956642: probe:do_sys_openat2: (c02c3750) filename_string="/lib/tls/v7l/neon/vfp/libresolv.so.2"
...
@@ -239,16 +239,16 @@ tail 164 [000] 3552.956642: probe:do_sys_openat2: (c02c3750) filename_string=
\code{r0} (ARM) alias with "ret" name:
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\scriptsize]{C}
-$ perf probe ksys_read%return ret=%r0
+ \begin{minted}[fontsize=\scriptsize]{console}
+# perf probe ksys_read%return ret=%r0
\end{minted}
\end{block}
\begin{itemize}
\item Execute \code{sha256sum} and capture previously created probe events:
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\scriptsize]{C}
-$ perf record -e probe:ksys_read__return sha256sum /etc/fstab
+ \begin{minted}[fontsize=\scriptsize]{console}
+# perf record -e probe:ksys_read__return sha256sum /etc/fstab
\end{minted}
\end{block}
\end{frame}
@@ -260,8 +260,8 @@ $ perf record -e probe:ksys_read__return sha256sum /etc/fstab
\item List all probes that have been created:
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\scriptsize]{C}
-$ perf probe -l
+ \begin{minted}[fontsize=\scriptsize]{console}
+# perf probe -l
probe:ksys_read__return (on ksys_read%return with ret)
\end{minted}
\end{block}
@@ -269,8 +269,8 @@ $ perf probe -l
\item Remove an existing tracepoint:
\end{itemize}
\begin{block}{}
- \begin{minted}[fontsize=\tiny]{C}
-$ perf probe -d probe:ksys_read__return
+ \begin{minted}[fontsize=\tiny]{console}
+# perf probe -d probe:ksys_read__return
\end{minted}
\end{block}
\end{frame}
@@ -283,7 +283,7 @@ $ perf probe -d probe:ksys_read__return
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\scriptsize]{console}
-$ perf record -a
+# perf record -a
^C
\end{minted}
\end{block}
@@ -292,7 +292,7 @@ $ perf record -a
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ perf script
+# perf script
...
klogd 85 [000] 208.609712: 116584 cycles: b6dd551c memset+0x2c (/lib/libc.so.6)
klogd 85 [000] 208.609898: 121267 cycles: c0a44c84 _raw_spin_unlock_irq+0x34 (vmlinux)
@@ -318,7 +318,7 @@ kworker/0:2-mm_ 44 [000] 208.620653: 133104 cycles: c0a44c84
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ perf trace -e "net:*" ping -c 1 192.168.1.1
+# perf trace -e "net:*" ping -c 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
0.000 ping/37820 net:net_dev_queue(skbaddr: 0xffff97bbc6a17900, len: 98,
name: "enp34s0")
@@ -343,7 +343,7 @@ PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ perf top
+# perf top
Samples: 19K of event 'cycles', 4000 Hz, Event count (approx.): 4571734204 lost: 0/0 drop: 0/0
Overhead Shared Object Symbol
2,01% [nvidia] [k] _nv023368rm
@@ -444,7 +444,7 @@ Overhead Shared Object Symbol
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd report
+# trace-cmd report
...
dd-113 [000] 304.526590: funcgraph_entry: | sys_write() {
dd-113 [000] 304.526597: funcgraph_entry: | ksys_write() {
@@ -604,7 +604,7 @@ void read_hw()
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd list -t
+# trace-cmd list -t
blk mmiotrace function_graph function nop
\end{minted}
\end{block}
@@ -613,7 +613,7 @@ blk mmiotrace function_graph function nop
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd list -e
+# trace-cmd list -e
...
migrate:mm_migrate_pages_start
migrate:mm_migrate_pages
@@ -629,7 +629,7 @@ syscalls:sys_exit_process_vm_writev
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd list -f
+# trace-cmd list -f
...
wait_for_initramfs
__ftrace_invalid_address___64
@@ -649,7 +649,7 @@ calibrate_delay
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd record -p function
+# trace-cmd record -p function
\end{minted}
\end{block}
@@ -658,7 +658,7 @@ $ trace-cmd record -p function
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd record -l spi_* -p function
+# trace-cmd record -l spi_* -p function
\end{minted}
\end{block}
@@ -667,7 +667,7 @@ $ trace-cmd record -l spi_* -p function
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd record -p function_graph dd if=/dev/mmcblk0 of=out bs=512 count=10
+# trace-cmd record -p function_graph dd if=/dev/mmcblk0 of=out bs=512 count=10
\end{minted}
\end{block}
@@ -676,7 +676,7 @@ $ trace-cmd record -p function_graph dd if=/dev/mmcblk0 of=out bs=512 count=10
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd report
+# trace-cmd report
\end{minted}
\end{block}
\end{frame}
@@ -688,7 +688,7 @@ $ trace-cmd report
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd reset
+# trace-cmd reset
\end{minted}
\end{block}
@@ -697,7 +697,7 @@ $ trace-cmd reset
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd record -p irqsoff
+# trace-cmd record -p irqsoff
\end{minted}
\end{block}
\begin{itemize}
@@ -706,7 +706,7 @@ $ trace-cmd record -p irqsoff
\end{itemize}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{console}
-$ trace-cmd record -e irq:irq_handler_exit -e irq:irq_handler_entry
+# trace-cmd record -e irq:irq_handler_exit -e irq:irq_handler_entry
\end{minted}
\end{block}
@@ -886,7 +886,7 @@ void any_func(void)
\begin{block}{}
\begin{minted}[fontsize=\footnotesize]{console}
$ git clone https://github.com/brendangregg/FlameGraph.git
-$ profile.py -df -F 99 10 | ./FlameGraph/flamegraph.pl > flamegraph.svg
+# profile.py -df -F 99 10 | ./FlameGraph/flamegraph.pl > flamegraph.svg
\end{minted}
\end{block}
\begin{itemize}
More information about the training-materials-updates
mailing list