[bootlin/training-materials updates] master: Softirqs: calling them with their real nam (8d15858f)
Michael Opdenacker
michael.opdenacker at bootlin.com
Fri Mar 15 16:02:34 CET 2019
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/8d15858f1aa1b9628ae46825a075897b075b6368
>---------------------------------------------------------------
commit 8d15858f1aa1b9628ae46825a075897b075b6368
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Fri Mar 15 16:02:34 2019 +0100
Softirqs: calling them with their real nam
- And providing Elixir links
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
8d15858f1aa1b9628ae46825a075897b075b6368
.../kernel-driver-development-interrupts.tex | 17 +++--
.../thread-halves.dia | 89 +++++++++++++++++++---
2 files changed, 88 insertions(+), 18 deletions(-)
diff --git a/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex b/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
index 6596e664..e84f11a7 100644
--- a/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
+++ b/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
@@ -207,10 +207,11 @@ int devm_request_threaded_irq(
not directly used by drivers, but by complete kernel subsystems
(network, etc.)
\item The list of softirqs is defined in
- \kfile{include/linux/interrupt.h}: \code{HI}, \code{TIMER},
- \code{NET_TX}, \code{NET_RX}, \code{BLOCK}, \code{BLOCK_IOPOLL},
- \code{TASKLET}, \code{SCHED}, \code{HRTIMER}, \code{RCU}
- \item The \code{HI} and \code{TASKLET} softirqs are used to execute
+ \kfile{include/linux/interrupt.h}: \ksym{HI_SOFTIRQ}, \ksym{TIMER_SOFTIRQ}
+ \ksym{NET_TX_SOFTIRQ}, \ksym{NET_RX_SOFTIRQ}, \ksym{BLOCK_SOFTIRQ},
+ \ksym{IRQ_POLL_SOFTIRQ}, \ksym{TASKLET_SOFTIRQ},
+ \ksym{SCHED_SOFTIRQ}, \ksym{HRTIMER_SOFTIRQ}, \ksym{RCU_SOFTIRQ}
+ \item The \ksym{HI_SOFTIRQ} and \ksym{TASKLET_SOFTIRQ} softirqs are used to execute
tasklets
\end{itemize}
\end{frame}
@@ -218,8 +219,8 @@ int devm_request_threaded_irq(
\begin{frame}
\frametitle{Tasklets}
\begin{itemize}
- \item Tasklets are executed within the \code{HI} and \code{TASKLET}
- softirqs. They are executed with all interrupts enabled, but a
+ \item Tasklets are executed within the \ksym{HI_SOFTIRQ} and
+ \ksym{TASKLET_SOFTIRQ} softirqs. They are executed with all interrupts enabled, but a
given tasklet is guaranteed to execute on a single CPU at a time.
\item Tasklets are typically created with the \kfunc{tasklet_init}
function, when your driver manages multiple devices, otherwise
@@ -229,9 +230,9 @@ int devm_request_threaded_irq(
\item The interrupt handler can schedule tasklet execution with:
\begin{itemize}
\item \kfunc{tasklet_schedule} to get it executed in the
- \code{TASKLET} softirq
+ \ksym{TASKLET_SOFTIRQ} softirq
\item \kfunc{tasklet_hi_schedule} to get it executed in the
- \code{HI} softirq (higher priority)
+ \ksym{HI_SOFTIRQ} softirq (higher priority)
\end{itemize}
\end{itemize}
\end{frame}
diff --git a/slides/kernel-driver-development-interrupts/thread-halves.dia b/slides/kernel-driver-development-interrupts/thread-halves.dia
index f22bf90c..d19d3000 100644
--- a/slides/kernel-driver-development-interrupts/thread-halves.dia
+++ b/slides/kernel-driver-development-interrupts/thread-halves.dia
@@ -567,12 +567,13 @@
<dia:point val="24.5,10"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="24.185,10;24.815,10.94"/>
+ <dia:rectangle val="22.9438,10;26.0798,11.8105"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
<dia:attribute name="string">
- <dia:string>#HI#</dia:string>
+ <dia:string>#HI
+_SOFTIRQ#</dia:string>
</dia:attribute>
<dia:attribute name="font">
<dia:font family="Latin Modern Sans" style="0" name="Courier"/>
@@ -581,7 +582,7 @@
<dia:real val="0.80000000000000004"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="24.5,10.74"/>
+ <dia:point val="24.5,10.7635"/>
</dia:attribute>
<dia:attribute name="color">
<dia:color val="#000000ff"/>
@@ -603,12 +604,13 @@
<dia:point val="29.5,10"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="28.2312,10;30.7688,10.94"/>
+ <dia:rectangle val="27.9438,10;31.0798,11.8105"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
<dia:attribute name="string">
- <dia:string>#NET_RX#</dia:string>
+ <dia:string>#NET_RX
+_SOFTIRQ#</dia:string>
</dia:attribute>
<dia:attribute name="font">
<dia:font family="Latin Modern Sans" style="0" name="Courier"/>
@@ -617,7 +619,7 @@
<dia:real val="0.80000000000000004"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="29.5,10.74"/>
+ <dia:point val="29.5,10.7635"/>
</dia:attribute>
<dia:attribute name="color">
<dia:color val="#000000ff"/>
@@ -639,12 +641,13 @@
<dia:point val="34.5,10"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="33.1125,10;35.8875,10.94"/>
+ <dia:rectangle val="32.9438,10;36.0797,11.8105"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
<dia:attribute name="string">
- <dia:string>#TASKLET#</dia:string>
+ <dia:string>#TASKLET
+_SOFTIRQ#</dia:string>
</dia:attribute>
<dia:attribute name="font">
<dia:font family="Latin Modern Sans" style="0" name="Courier"/>
@@ -653,7 +656,7 @@
<dia:real val="0.80000000000000004"/>
</dia:attribute>
<dia:attribute name="pos">
- <dia:point val="34.5,10.74"/>
+ <dia:point val="34.5,10.7635"/>
</dia:attribute>
<dia:attribute name="color">
<dia:color val="#000000ff"/>
@@ -889,7 +892,7 @@ triggered#</dia:string>
<dia:point val="27.05,15.45"/>
</dia:attribute>
<dia:attribute name="obj_bb">
- <dia:rectangle val="23.8062,13.5367;30.2937,17.3633"/>
+ <dia:rectangle val="23.8063,13.5367;30.2938,17.3633"/>
</dia:attribute>
<dia:attribute name="text">
<dia:composite type="text">
@@ -1210,5 +1213,71 @@ enabled#</dia:string>
<dia:enum val="2"/>
</dia:attribute>
</dia:object>
+ <dia:object type="Standard - Text" version="1" id="O34">
+ <dia:attribute name="obj_pos">
+ <dia:point val="28.35,10.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="28.35,9.905;28.35,10.6525"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="28.35,10.5"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000ff"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O35">
+ <dia:attribute name="obj_pos">
+ <dia:point val="18.95,10.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="18.95,9.905;18.95,10.6525"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="18.95,10.5"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000ff"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ </dia:object>
</dia:layer>
</dia:diagram>
More information about the training-materials-updates
mailing list