[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