[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