[BL training-materials-updates] real-time slides: update lists of preemption options

Michael Opdenacker michael.opdenacker at bootlin.com
Wed Nov 7 07:20:48 CET 2018


Repository : git://git.free-electrons.com/training-materials.git
On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=61bb6ef6622eb94fe5a33ca46abdcbcd9f8ebd42

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

commit 61bb6ef6622eb94fe5a33ca46abdcbcd9f8ebd42
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Wed Nov 7 07:20:48 2018 +0100

    real-time slides: update lists of preemption options
    
    - There's a new "Basic RT" option now
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


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

61bb6ef6622eb94fe5a33ca46abdcbcd9f8ebd42
 .../sysdev-realtime/kernel-config-preemption.png   | Bin 26697 -> 0 bytes
 .../sysdev-realtime/mainline-preempt-options.png   | Bin 0 -> 27284 bytes
 slides/sysdev-realtime/rt-preempt-options.png      | Bin 0 -> 37119 bytes
 slides/sysdev-realtime/sysdev-realtime.tex         |  52 +++++++++++++--------
 4 files changed, 32 insertions(+), 20 deletions(-)

diff --git a/slides/sysdev-realtime/kernel-config-preemption.png b/slides/sysdev-realtime/kernel-config-preemption.png
deleted file mode 100644
index b893cf4..0000000
Binary files a/slides/sysdev-realtime/kernel-config-preemption.png and /dev/null differ
diff --git a/slides/sysdev-realtime/mainline-preempt-options.png b/slides/sysdev-realtime/mainline-preempt-options.png
new file mode 100644
index 0000000..a30ef70
Binary files /dev/null and b/slides/sysdev-realtime/mainline-preempt-options.png differ
diff --git a/slides/sysdev-realtime/rt-preempt-options.png b/slides/sysdev-realtime/rt-preempt-options.png
new file mode 100644
index 0000000..5f5054a
Binary files /dev/null and b/slides/sysdev-realtime/rt-preempt-options.png differ
diff --git a/slides/sysdev-realtime/sysdev-realtime.tex b/slides/sysdev-realtime/sysdev-realtime.tex
index ecc977a..bc82bec 100644
--- a/slides/sysdev-realtime/sysdev-realtime.tex
+++ b/slides/sysdev-realtime/sysdev-realtime.tex
@@ -308,7 +308,7 @@
   \frametitle{Preemption options}
   Preemption models offered by the mainline kernel:
   \begin{center}
-    \includegraphics[width=0.9\textwidth]{slides/sysdev-realtime/kernel-config-preemption.png}
+    \includegraphics[width=0.9\textwidth]{slides/sysdev-realtime/mainline-preempt-options.png}
   \end{center}
 \end{frame}
 
@@ -434,29 +434,41 @@
 \subsection{PREEMPT\_RT specifics}
 
 \begin{frame}
-  \frametitle{{\tt CONFIG\_PREEMPT\_RT} (1)}
+  \frametitle{New real-time preemption options}
+  The PREEMPT\_RT patchset adds two new levels of preemption:
   \begin{itemize}
-  \item The PREEMPT\_RT patch adds a new level of preemption, called
-    \code{CONFIG_PREEMPT_RT_FULL}
-  \item This level of preemption replaces all kernel spinlocks by
-    mutexes (or so-called sleeping spinlocks)
-    \begin{itemize}
-    \item Instead of providing mutual exclusion by disabling
-      interrupts and preemption, they are just normal locks: when
-      contention happens, the process is blocked and another one is
-      selected by the scheduler.
-    \item Works well with threaded interrupts, since threads can
-      block, while usual interrupt handlers could not.
-    \item Some core, carefully controlled, kernel spinlocks remain as
-      normal spinlocks ({\em spinlock annotations}: differentiation
-      now in mainline between spinning spinlocks and those that can be
-      converted to sleeping spinlocks).
-    \end{itemize}
+    \item \code{CONFIG_PREEMPT_RTB}:\\
+    Roughly all PREEMPT\_RT features except sleeping spinlocks.\\
+    Useful for debugging.
+    \item \code{CONFIG_PREEMPT_RT_FULL}:\\
+    All PREEMPT\_RT features
+  \end{itemize}
+  \begin{center}
+    \includegraphics[width=0.9\textwidth]{slides/sysdev-realtime/rt-preempt-options.png}
+  \end{center}
+  
+\end{frame}
+
+\begin{frame}
+  \frametitle{{\tt CONFIG\_PREEMPT\_RT\_FULL} (1)}
+  This level of preemption replaces all kernel spinlocks by
+  mutexes (or so-called sleeping spinlocks)
+  \begin{itemize}
+  \item Instead of providing mutual exclusion by disabling
+    interrupts and preemption, they are just normal locks: when
+    contention happens, the process is blocked and another one is
+    selected by the scheduler.
+  \item Works well with threaded interrupts, since threads can
+    block, while usual interrupt handlers could not.
+  \item Some core, carefully controlled, kernel spinlocks remain as
+    normal spinlocks ({\em spinlock annotations}: differentiation
+    now in mainline between spinning spinlocks and those that can be
+    converted to sleeping spinlocks).
   \end{itemize}
 \end{frame}
 
 \begin{frame}
-  \frametitle{{\tt CONFIG\_PREEMPT\_RT} (2)}
+  \frametitle{{\tt CONFIG\_PREEMPT\_RT\_FULL} (2)}
   \begin{itemize}
   \item With \code{CONFIG_PREEMPT_RT_FULL}, virtually all kernel code
     becomes preemptible
@@ -488,7 +500,7 @@
       some adaptations
     \end{itemize}
   \item Not all releases of the Linux kernel are supported.
-      Most recent: 4.11, 4.13, 4.14, 4.16, 4.18
+      Most recent: 4.11, 4.13, 4.14, 4.16, 4.18, 4.19
   \item Quick set up:
     \begin{itemize}
     \item Download the latest PREEMPT\_RT patch\\




More information about the training-materials-updates mailing list