[bootlin/training-materials updates] master: debugging: slides: add explanations about SMP IRQ affinity (f166f813)

Clément Léger clement.leger at bootlin.com
Fri Nov 18 11:18:55 CET 2022


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

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

commit f166f813e2b9f6960e672486f19dcb6304484706
Author: Clément Léger <clement.leger at bootlin.com>
Date:   Fri Nov 18 11:18:01 2022 +0100

    debugging: slides: add explanations about SMP IRQ affinity
    
    Signed-off-by: Clément Léger <clement.leger at bootlin.com>


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

f166f813e2b9f6960e672486f19dcb6304484706
 .../debugging-linux-application-stack.tex          | 27 ++++++++++++++++------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/slides/debugging-linux-application-stack/debugging-linux-application-stack.tex b/slides/debugging-linux-application-stack/debugging-linux-application-stack.tex
index 92bb6f75..f9b22548 100644
--- a/slides/debugging-linux-application-stack/debugging-linux-application-stack.tex
+++ b/slides/debugging-linux-application-stack/debugging-linux-application-stack.tex
@@ -271,16 +271,29 @@
     \item When receiving an interrupt, the CPU will change its execution mode by
           jump to a specific vector and switching to kernel mode to handle the
           interrupt.
-    \item While handling the interrupts, it is executing in a specific context
-          named {\em interrupt context}.
+    \item When multiple CPUs (cores) are present, interrupts are often directed
+          to a single core.
+    \item This is called "IRQ affinity" and it allow to control the IRQ load for
+          each CPU
     \begin{itemize}
-      \item This context does not have access to userspace and should not use
-            \kfunc{get_current}.
-      \item Depending on the architecture, might use an IRQ stack.
-      \item Interrupts are disabled (no nested interrupt support)
+      \item See \kdochtml{core-api/irq/irq-affinity} and \manpage{irqbalance}{1}
     \end{itemize}
   \end{itemize}
-  \center\includegraphics[height=0.2\textheight]{slides/debugging-linux-application-stack/interrupt_context.pdf}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Interrupts}
+  \begin{itemize}
+    \item While handling the interrupts, it is executing in a specific context
+          named {\em interrupt context}.
+    \item This context does not have access to userspace and should not use
+          \kfunc{get_current}.
+    \item Depending on the architecture, might use an IRQ stack.
+    \item Interrupts are disabled ! (no nested interrupt support)
+  \end{itemize}
+  \begin{center}
+    \includegraphics[height=0.2\textheight]{slides/debugging-linux-application-stack/interrupt_context.pdf}
+  \end{center}
 \end{frame}
 
 \begin{frame}[fragile]




More information about the training-materials-updates mailing list