[bootlin/training-materials updates] master: kernel: split PROVE_LOCKING slides out of kernel (e2648c93)
Clément Léger
clement.leger at bootlin.com
Tue Oct 25 10:52:08 CEST 2022
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/e2648c93fb95df05e9fcb05529ac9b5cc1aca49e
>---------------------------------------------------------------
commit e2648c93fb95df05e9fcb05529ac9b5cc1aca49e
Author: Clément Léger <clement.leger at bootlin.com>
Date: Wed Jun 1 16:22:06 2022 +0200
kernel: split PROVE_LOCKING slides out of kernel
Signed-off-by: Clément Léger <clement.leger at bootlin.com>
>---------------------------------------------------------------
e2648c93fb95df05e9fcb05529ac9b5cc1aca49e
common/prove-locking.tex | 26 +++++++++++++++++++++
.../kernel-driver-development-concurrency.tex | 27 +---------------------
2 files changed, 27 insertions(+), 26 deletions(-)
diff --git a/common/prove-locking.tex b/common/prove-locking.tex
new file mode 100644
index 00000000..7a74a7b1
--- /dev/null
+++ b/common/prove-locking.tex
@@ -0,0 +1,26 @@
+\begin{frame}
+ \frametitle{Debugging locking and concurrency issues}
+ \begin{itemize}
+ \item Lock debugging: prove locking correctness
+ \begin{itemize}
+ \item \kconfig{CONFIG_PROVE_LOCKING}
+ \item Adds instrumentation to kernel locking code
+ \item Detect violations of locking rules during system life, such as:
+ \begin{itemize}
+ \item Locks acquired in different order (keeps track of locking
+ sequences and compares them).
+ \item Spinlocks acquired in interrupt handlers and also in
+ process context when interrupts are enabled.
+ \end{itemize}
+ \item Not suitable for production systems but acceptable overhead
+ in development.
+ \item See \kdochtml{locking/lockdep-design} for details
+ \end{itemize}
+ \item Kernel Concurrency SANitizer framework
+ \begin{itemize}
+ \item \kconfig{CONFIG_KCSAN}, introduced in Linux 5.8.
+ \item Can find concurrency issues in your system.
+ \item See \url{https://lwn.net/Articles/816850/} for details.
+ \end{itemize}
+ \end{itemize}
+\end{frame}
diff --git a/slides/kernel-driver-development-concurrency/kernel-driver-development-concurrency.tex b/slides/kernel-driver-development-concurrency/kernel-driver-development-concurrency.tex
index 9d2f846d..7d6df550 100644
--- a/slides/kernel-driver-development-concurrency/kernel-driver-development-concurrency.tex
+++ b/slides/kernel-driver-development-concurrency/kernel-driver-development-concurrency.tex
@@ -222,32 +222,7 @@ static unsigned int ulite_tx_empty(struct uart_port *port) {
\end{columns}
\end{frame}
-\begin{frame}
- \frametitle{Debugging locking and concurrency issues}
- \begin{itemize}
- \item Lock debugging: prove locking correctness
- \begin{itemize}
- \item \kconfig{CONFIG_PROVE_LOCKING}
- \item Adds instrumentation to kernel locking code
- \item Detect violations of locking rules during system life, such as:
- \begin{itemize}
- \item Locks acquired in different order (keeps track of locking
- sequences and compares them).
- \item Spinlocks acquired in interrupt handlers and also in
- process context when interrupts are enabled.
- \end{itemize}
- \item Not suitable for production systems but acceptable overhead
- in development.
- \item See \kdochtml{locking/lockdep-design} for details
- \end{itemize}
- \item Kernel Concurrency SANitizer framework
- \begin{itemize}
- \item \kconfig{CONFIG_KCSAN}, introduced in Linux 5.8.
- \item Can find concurrency issues in your system.
- \item See \url{https://lwn.net/Articles/816850/} for details.
- \end{itemize}
- \end{itemize}
-\end{frame}
+\input{../common/prove-locking.tex}
\begin{frame}
\frametitle{Alternatives to locking}
More information about the training-materials-updates
mailing list