[bootlin/training-materials updates] master: preempt-rt: Update slides (2a07c23c)

Maxime Chevallier maxime.chevallier at bootlin.com
Wed Jan 18 18:52:05 CET 2023


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/2a07c23cde18605510aac6aa2eb875b92e2278ae

>---------------------------------------------------------------

commit 2a07c23cde18605510aac6aa2eb875b92e2278ae
Author: Maxime Chevallier <maxime.chevallier at bootlin.com>
Date:   Wed Jan 18 11:29:30 2023 +0100

    preempt-rt: Update slides
    
    Signed-off-by: Maxime Chevallier <maxime.chevallier at bootlin.com>


>---------------------------------------------------------------

2a07c23cde18605510aac6aa2eb875b92e2278ae
 .../realtime-linux-benchmarking.tex                |  38 +++++++++++++++++++++
 slides/realtime-linux-hardware/cpuidle_latency.pdf | Bin 0 -> 24306 bytes
 .../realtime-linux-hardware.tex                    |   1 +
 .../realtime-linux-preempt-rt.tex                  |   4 ++-
 4 files changed, 42 insertions(+), 1 deletion(-)

diff --git a/slides/realtime-linux-benchmarking/realtime-linux-benchmarking.tex b/slides/realtime-linux-benchmarking/realtime-linux-benchmarking.tex
index 2df43f88..7ee5bcf8 100644
--- a/slides/realtime-linux-benchmarking/realtime-linux-benchmarking.tex
+++ b/slides/realtime-linux-benchmarking/realtime-linux-benchmarking.tex
@@ -73,6 +73,35 @@ cat /sys/kernel/tracing/tracing_max_latency
   \end{itemize}
 \end{frame}
 
+\begin{frame}
+	\frametitle{trace-cmd}
+	\begin{itemize}
+		\item Wrapper around the \code{ftrace} interface
+		\item Trace only during a program execution :
+			\begin{itemize}
+				\item \code{trace-cmd <opts> record <cmd>}
+				\item \code{trace-cmd report}
+			\end{itemize}
+		\item Start, stop and show the trace buffer :
+			\begin{itemize}
+				\item \code{trace-cmd <opts> start}
+				\item \code{trace-cmd stop}
+				\item \code{trace-cmd show}
+			\end{itemize}
+		\item Save the content of the trace buffer for further analysis:
+			\begin{itemize}
+				\item \code{trace-cmd extract}
+			\end{itemize}
+		\item Options
+			\begin{itemize}
+				\item Events: \code{-e sched}, \code{-e sched:sched_switch}
+				\item Plugins: \code{-p function}
+				\item Tracers: \code{-t osnoise}
+				\item Functions: \code{-f netif_tx_wake_queue}
+			\end{itemize}
+	\end{itemize}
+\end{frame}
+
 \begin{frame}
 	\frametitle{hwlatdetect}
 	Tool provided by \code{rt-tests}, relying on a dedicated kernel feature
@@ -106,6 +135,14 @@ cat /sys/kernel/tracing/tracing_max_latency
 
 \begin{frame}
 	\frametitle{timerlat}
+	\begin{itemize}
+		\item Does cyclictest-like measurements of the wakeup latency
+		\item Can differentiate the IRQ wakeup time from the scheduling wakeup time
+		\item IRQ wakeup latency time: delay with which the timer interrupt arrived
+		\item Thread latency: delay for the thread wakeup
+		\item Can use \code{osnoise} tracepoints to analyse the delay sources
+	\end{itemize}
+	%%% Schematics
 \end{frame}
 
 \begin{frame}
@@ -127,6 +164,7 @@ cat /sys/kernel/tracing/tracing_max_latency
 		\item Developped by Daniel Bristot de Oliveira
 		\item High-level interface to the \code{timerlat} and \code{osnoise} tracers
 		\item \code{rtla osnoise|timerlat top|hist} gives high-level view of noise and latencies
+		\item Can generate histograms, that can then be visualized
 	\end{itemize}
 
 \end{frame}
diff --git a/slides/realtime-linux-hardware/cpuidle_latency.pdf b/slides/realtime-linux-hardware/cpuidle_latency.pdf
new file mode 100644
index 00000000..c14b7dbb
Binary files /dev/null and b/slides/realtime-linux-hardware/cpuidle_latency.pdf differ
diff --git a/slides/realtime-linux-hardware/realtime-linux-hardware.tex b/slides/realtime-linux-hardware/realtime-linux-hardware.tex
index 3e0e22a7..9fed3c65 100644
--- a/slides/realtime-linux-hardware/realtime-linux-hardware.tex
+++ b/slides/realtime-linux-hardware/realtime-linux-hardware.tex
@@ -108,6 +108,7 @@
 		\item We can limit the CPU idle states to lightweight states
 		\item This can have a big impact on power consumption and thermal management
 	\end{itemize}
+	\includegraphics[width=0.8\textwidth]{slides/realtime-linux-hardware/cpuidle_latency}
 \end{frame}
 
 \begin{frame}
diff --git a/slides/realtime-linux-preempt-rt/realtime-linux-preempt-rt.tex b/slides/realtime-linux-preempt-rt/realtime-linux-preempt-rt.tex
index 35dde1a4..cca52bd2 100644
--- a/slides/realtime-linux-preempt-rt/realtime-linux-preempt-rt.tex
+++ b/slides/realtime-linux-preempt-rt/realtime-linux-preempt-rt.tex
@@ -58,7 +58,6 @@
 		\item The hardware Linux typically runs on isn't designed with RT in mind
 		\item The RT patch makes the Kernel deterministic and preemptible...
 		\item ... but the goal is not to have the lowest latencies possible
-		\item Linux will never be suitable for safety critical applications
 	\end{itemize}
 \end{frame}
 
@@ -88,6 +87,8 @@
 		\item Tickless operation
 		\item Earliest-Deadline First scheduler
 		\item Realtime locks - Locking primitives conversion
+		\item Tracing
+		\item Printk
 	\end{itemize}
 \end{frame}
 
@@ -212,6 +213,7 @@
 		\item They acknowledge the interrupts, and enqueues the "real" interrupt handler
 		\item The interrupt handler runs in a dedicated Kernel thread
 		\item Threaded interrupts are well established in the mainline kernel
+		\item Exceptions : \code{IRQF_NOTHREAD}, \code{IRQF_PERCPU}, \code{IRQS_ONESHOT}
 	\end{itemize}
 %  https://wiki.linuxfoundation.org/realtime/documentation/technical_details/threadirq
 \end{frame}




More information about the training-materials-updates mailing list