[FE training-materials-updates] [git/training-materials] master: Kernel slides: group sleeping implementation diagram and details (011a79d)
Michael Opdenacker
michael.opdenacker at free-electrons.com
Fri Dec 9 00:10:28 CET 2016
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=011a79d6c00c57bca8f74c75479c45bd9d928972
>---------------------------------------------------------------
commit 011a79d6c00c57bca8f74c75479c45bd9d928972
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date: Thu Dec 8 23:09:14 2016 +0100
Kernel slides: group sleeping implementation diagram and details
- Weird to explain things again after showing the diagram
Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>
>---------------------------------------------------------------
011a79d6c00c57bca8f74c75479c45bd9d928972
.../kernel-driver-development-sleeping.tex | 37 ++++++++++------------
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/slides/kernel-driver-development-sleeping/kernel-driver-development-sleeping.tex b/slides/kernel-driver-development-sleeping/kernel-driver-development-sleeping.tex
index e2decd9..e612ef6 100644
--- a/slides/kernel-driver-development-sleeping/kernel-driver-development-sleeping.tex
+++ b/slides/kernel-driver-development-sleeping/kernel-driver-development-sleeping.tex
@@ -136,26 +136,21 @@ if (ret)
\end{frame}
\begin{frame}[fragile]
- \frametitle{Sleeping and waking up - Implementation 1/2}
- \begin{center}
- \includegraphics[height=0.8\textheight]{slides/kernel-driver-development-sleeping/wait-event.pdf}\\
- \end{center}
+ \frametitle{Sleeping and waking up - Implementation}
+ \begin{columns}
+ \column{0.5\textwidth}
+ \includegraphics[height=0.8\textheight]{slides/kernel-driver-development-sleeping/wait-event.pdf}\\
+ \column{0.5\textwidth}
+ The scheduler doesn't keep evaluating the sleeping condition!
+ \begin{itemize}
+ \item \mint{c}+wait_event(queue, cond);+
+ The process is put in the \ksym{TASK_UNINTERRUPTIBLE} state.
+ \item \mint{c}+wake_up(&queue);+
+ All processes waiting in \code{queue} are woken up, so they get
+ scheduled later and have the opportunity to evaluate the
+ condition again and go back to sleep if it is not met.
+ \end{itemize}
+ See \kpath{include/linux/wait.h} for implementation details.
+ \end{columns}
\end{frame}
-\begin{frame}[fragile]
- \frametitle{Sleeping and waking up - Implementation 2/2}
- The scheduler doesn't keep evaluating the sleeping condition!\\
- \begin{itemize}
- \item \mint{c}+wait_event(queue, condition);+
- \begin{itemize}
- \item The process is put in the \ksym{TASK_UNINTERRUPTIBLE} state.
- \end{itemize}
- \item \mint{c}+wake_up(&queue);+
- \begin{itemize}
- \item All processes waiting in \code{queue} are woken up, so they get
- scheduled later and have the opportunity to evaluate the
- condition again and go back to sleep if it is not met.
- \end{itemize}
- \end{itemize}
- See \kpath{include/linux/wait.h} for implementation details.
-\end{frame}
More information about the training-materials-updates
mailing list