[bootlin/training-materials updates] master: Kernel slides: misc updates, fixes and minor improvements (4b993eab)
Michael Opdenacker
michael.opdenacker at bootlin.com
Tue Sep 3 17:27:04 CEST 2019
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/4b993eab3e4ba43abd3d13b9d8b7a8fc20fdcf28
>---------------------------------------------------------------
commit 4b993eab3e4ba43abd3d13b9d8b7a8fc20fdcf28
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Tue Sep 3 17:27:04 2019 +0200
Kernel slides: misc updates, fixes and minor improvements
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
4b993eab3e4ba43abd3d13b9d8b7a8fc20fdcf28
slides/kernel-contribution/kernel-contribution.tex | 4 +++-
slides/kernel-device-model/kernel-device-model.tex | 3 +++
.../kernel-driver-development-interrupts.tex | 13 +++++++------
.../kernel-driver-development-io-memory.tex | 3 ++-
.../kernel-driver-development-memory.tex | 2 +-
.../kernel-driver-development-modules.tex | 2 ++
slides/kernel-git-content/kernel-git-content.tex | 6 +++---
.../kernel-porting-content.tex | 11 ++++++++---
.../kernel-resources-references.tex | 21 +++++++++++++--------
slides/kernel-resources-references/lwn.png | Bin 0 -> 136808 bytes
.../sysdev-kernel-building.tex | 14 +++++---------
.../sysdev-linux-intro-sources.tex | 4 ++--
.../sysdev-linux-intro-versioning.tex | 2 +-
13 files changed, 50 insertions(+), 35 deletions(-)
diff --git a/slides/kernel-contribution/kernel-contribution.tex b/slides/kernel-contribution/kernel-contribution.tex
index 5873a61f..f147f5b5 100644
--- a/slides/kernel-contribution/kernel-contribution.tex
+++ b/slides/kernel-contribution/kernel-contribution.tex
@@ -184,7 +184,9 @@ linux-kernel at vger.kernel.org (open list)
}
\item Now, send your patches to each of these people and lists
\begin{itemize}
- \item \code{git send-email --compose --to linux at arm.linux.org.uk --to nicolas.pitre at linaro.org --to linux-arm-kernel at lists.infradead.org --to linux-kernel at vger.kernel.org 00*.patch}
+ \item \code{git send-email --compose --to linux at arm.linux.org.uk
+ --to nicolas.pitre at linaro.org --cc linux-arm-kernel at lists.infradead.org
+ --cc linux-kernel at vger.kernel.org 00*.patch}
\end{itemize}
\item Wait for replies about your changes, take the comments into
account, and resubmit if needed, until your changes are eventually
diff --git a/slides/kernel-device-model/kernel-device-model.tex b/slides/kernel-device-model/kernel-device-model.tex
index 846f8243..80fa468a 100644
--- a/slides/kernel-device-model/kernel-device-model.tex
+++ b/slides/kernel-device-model/kernel-device-model.tex
@@ -365,6 +365,9 @@ static void __exit imx_serial_cleanup(void) {
}
\end{minted}
\end{block}
+Most drivers actually use the \kfunc{platform_driver_register}
+and \kfunc{platform_driver_unregister} macros when they do nothing
+special in \code{init()} and \code{exit()} functions.
\end{frame}
\begin{frame}[fragile]
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 13547726..905ecaa1 100644
--- a/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
+++ b/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
@@ -212,7 +212,7 @@ int devm_request_threaded_irq(
\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
+ \item \ksym{HI_SOFTIRQ} and \ksym{TASKLET_SOFTIRQ} are used to execute
tasklets
\end{itemize}
\end{frame}
@@ -230,10 +230,10 @@ int devm_request_threaded_irq(
be used by individual device drivers, as opposed to softirqs.
\item The interrupt handler can schedule tasklet execution with:
\begin{itemize}
- \item \kfunc{tasklet_schedule} to get it executed in the
- \ksym{TASKLET_SOFTIRQ} softirq
- \item \kfunc{tasklet_hi_schedule} to get it executed in the
- \ksym{HI_SOFTIRQ} softirq (higher priority)
+ \item \kfunc{tasklet_schedule} to get it executed in
+ \ksym{TASKLET_SOFTIRQ}
+ \item \kfunc{tasklet_hi_schedule} to get it executed in
+ \ksym{HI_SOFTIRQ} (higher priority)
\end{itemize}
\end{itemize}
\end{frame}
@@ -290,7 +290,8 @@ static irqreturn_t atmel_sha_irq(int irq, void *dev_id)
\frametitle{Workqueues}
\begin{itemize}
\item Workqueues are a general mechanism for deferring work. It is
- not limited in usage to handling interrupts.
+ not limited in usage to handling interrupts. It can typically
+ be used for background work with can be scheduled.
\item The function registered as workqueue is executed in a thread,
which means:
\begin{itemize}
diff --git a/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex b/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex
index 852eb201..005c0865 100644
--- a/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex
+++ b/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex
@@ -224,7 +224,8 @@ __raw_writel(1 << KS8695_IRQ_UART_TX,
\frametitle{Avoiding I/O access issues}
\begin{itemize}
\item Caching on I/O ports or memory already disabled
- \item Use the macros, they do the right thing for your architecture
+ \item Use the \kfunc{writel}/\kfunc{readl} macros,
+ they do the right thing for your architecture
\item The compiler and/or CPU can reorder memory accesses, which
might cause troubles for your devices is they expect one register
to be read/written before another one.
diff --git a/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex b/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex
index d482c75e..36d26cfc 100644
--- a/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex
+++ b/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex
@@ -51,7 +51,7 @@
by user space
\item To allow the kernel to access more physical memory:
\begin{itemize}
- \item Change the 1GB/3GB memory split to 2GB/2GB or 1GB/3GB
+ \item Change the 3GB/1GB memory split to 2GB/2GB or 1GB/3GB
(\code{CONFIG_VMSPLIT_2G} or \code{CONFIG_VMSPLIT_1G)}
$\Rightarrow$ reduce total user memory available for each process
\item Change for a 64 bit architecture ;-) See
diff --git a/slides/kernel-driver-development-modules/kernel-driver-development-modules.tex b/slides/kernel-driver-development-modules/kernel-driver-development-modules.tex
index 20dd8b25..02786a2d 100644
--- a/slides/kernel-driver-development-modules/kernel-driver-development-modules.tex
+++ b/slides/kernel-driver-development-modules/kernel-driver-development-modules.tex
@@ -91,6 +91,8 @@ MODULE_AUTHOR("William Shakespeare");
or variable to all modules
\item \code{EXPORT_SYMBOL_GPL(symbolname)}, which exports a
function or variable only to GPL modules
+ \item Linux 5.3: contains the same number of symbols with
+ \kfunc{EXPORT_SYMBOL} and symbols with \kfunc{EXPORT_SYMBOL_GPL}
\end{itemize}
\item A normal driver should not need any non-exported function.
\end{itemize}
diff --git a/slides/kernel-git-content/kernel-git-content.tex b/slides/kernel-git-content/kernel-git-content.tex
index 4b1cee52..2157915b 100644
--- a/slides/kernel-git-content/kernel-git-content.tex
+++ b/slides/kernel-git-content/kernel-git-content.tex
@@ -341,7 +341,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
\begin{frame}
\frametitle{git-gui}
- \url{http://www.git-scm.com/docs/git-gui}
+ \url{https://www.git-scm.com/docs/git-gui}
\begin{itemize}
\item A graphical interface to create and manipulate commits,
replacing multiple git command-line commands.
@@ -369,9 +369,9 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
\item Git Manual
\newline \url{http://schacon.github.com/git/user-manual.html}
\item Git Book (freely available on-line, or in print form)
- \newline \url{http://git-scm.com/book}
+ \newline \url{https://git-scm.com/book}
\item Git official website
- \newline \url{http://git-scm.com/}
+ \newline \url{https://git-scm.com/}
\item Video: James Bottomley's tutorial on using Git
\newline \url{http://bit.ly/2fZJxLZ}
\end{itemize}
diff --git a/slides/kernel-porting-content/kernel-porting-content.tex b/slides/kernel-porting-content/kernel-porting-content.tex
index 2f28e226..1c68a327 100644
--- a/slides/kernel-porting-content/kernel-porting-content.tex
+++ b/slides/kernel-porting-content/kernel-porting-content.tex
@@ -381,15 +381,20 @@ dtb-$(CONFIG_ARCH_MXS) += imx28-cfa10036.dtb \
\end{frame}
\begin{frame}[fragile]
- \frametitle{{\tt arch/arm/mach-mvebu/board-v7.c}}
+ \frametitle{{\tt arch/arm/mach-mvebu/board-v7.c} (Linux 5.3)}
\begin{block}{}
\begin{minted}[fontsize=\tiny]{c}
static void __init mvebu_dt_init(void)
{
if (of_machine_is_compatible("marvell,armadaxp"))
i2c_quirk();
+}
- of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+static void __init armada_370_xp_dt_fixup(void)
+{
+#ifdef CONFIG_SMP
+ smp_set_ops(smp_ops(armada_xp_smp_ops));
+#endif
}
static const char * const armada_370_xp_dt_compat[] __initconst = {
@@ -400,12 +405,12 @@ static const char * const armada_370_xp_dt_compat[] __initconst = {
DT_MACHINE_START(ARMADA_370_XP_DT, "Marvell Armada 370/XP (Device Tree)")
.l2c_aux_val = 0,
.l2c_aux_mask = ~0,
- .smp = smp_ops(armada_xp_smp_ops),
.init_machine = mvebu_dt_init,
.init_irq = mvebu_init_irq,
.restart = mvebu_restart,
.reserve = mvebu_memblock_reserve,
.dt_compat = armada_370_xp_dt_compat,
+ .dt_fixup = armada_370_xp_dt_fixup,
MACHINE_END
\end{minted}
\end{block}
diff --git a/slides/kernel-resources-references/kernel-resources-references.tex b/slides/kernel-resources-references/kernel-resources-references.tex
index baa97d92..7759833f 100644
--- a/slides/kernel-resources-references/kernel-resources-references.tex
+++ b/slides/kernel-resources-references/kernel-resources-references.tex
@@ -1,14 +1,19 @@
\begin{frame}
Linux Weekly News
\frametitle{Kernel Development News}
- \begin{itemize}
- \item \url{http://lwn.net/}
- \item The weekly digest off all Linux and free software
- information sources
- \item In depth technical discussions about the kernel
- \item Subscribe to finance the editors (\$7 / month)
- \item Articles available for non subscribers after 1 week.
- \end{itemize}
+ \begin{columns}
+ \column{0.7\textwidth}
+ \begin{itemize}
+ \item \url{http://lwn.net/}
+ \item The weekly digest off all Linux and free software
+ information sources
+ \item In depth technical discussions about the kernel
+ \item Subscribe to finance the editors (\$7 / month)
+ \item Articles available for non subscribers after 1 week.
+ \end{itemize}
+ \column{0.3\textwidth}
+ \includegraphics[width=\textwidth]{slides/kernel-resources-references/lwn.png}
+ \end{columns}
\end{frame}
\begin{frame}
diff --git a/slides/kernel-resources-references/lwn.png b/slides/kernel-resources-references/lwn.png
new file mode 100644
index 00000000..6aeacb78
Binary files /dev/null and b/slides/kernel-resources-references/lwn.png differ
diff --git a/slides/sysdev-kernel-building/sysdev-kernel-building.tex b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
index e95ef6ea..0287fc72 100644
--- a/slides/sysdev-kernel-building/sysdev-kernel-building.tex
+++ b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
@@ -195,11 +195,9 @@
\code{make xconfig}
\begin{itemize}
\item The most common graphical interface to configure the kernel.
- \item Make sure you read\\
- \code{help -> introduction: useful options!}
\item File browser: easier to load configuration files
\item Search interface to look for parameters
- \item Required Debian / Ubuntu packages: \code{qt5-default}
+ \item Required Debian / Ubuntu packages: \code{qt5-default}
\end{itemize}
\end{frame}
@@ -212,10 +210,8 @@
\begin{frame}
\frametitle{make xconfig search interface}
-
- Looks for a keyword in the parameter name. Allows to select or
- unselect found parameters.
-
+ Looks for a keyword in the parameter name (shortcut: \code{[Ctrl]} + \code{[f]}).
+ \newline Allows to set values to found parameters.
\begin{center}
\includegraphics[height=0.7\textheight]{slides/sysdev-kernel-building/xconfig-search.png}
\end{center}
@@ -524,8 +520,8 @@ tools (\code{gcc}, \code{as}, \code{ld}, \code{objcopy}, \code{strip}...).
\item Many embedded architectures have a lot of non-discoverable
hardware.
\item Depending on the architecture, such hardware is either
- described using C code directly within the kernel, or using a
- special hardware description language in a {\em Device Tree}.
+ described in BIOS ACPI tables (x86), using C code directly within the kernel,
+ or using a special hardware description language in a {\em Device Tree}.
\item The DT was created for PowerPC, and later was
adopted by other architectures (ARM, ARC...). Now Linux
has DT support in most architectures, at least for specific
diff --git a/slides/sysdev-linux-intro-sources/sysdev-linux-intro-sources.tex b/slides/sysdev-linux-intro-sources/sysdev-linux-intro-sources.tex
index 6aa9b6f7..b9521acc 100644
--- a/slides/sysdev-linux-intro-sources/sysdev-linux-intro-sources.tex
+++ b/slides/sysdev-linux-intro-sources/sysdev-linux-intro-sources.tex
@@ -44,8 +44,8 @@
\item Create a branch that starts at a specific stable version\\
\code{git checkout -b <name-of-branch> v3.11}
\item Web interface available at
- \url{http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/}.
- \item Read more about Git at \url{http://git-scm.com/}
+ \url{https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/}
+ \item Read more about Git at \url{https://git-scm.com/}
\end{itemize}
\end{itemize}
\end{frame}
diff --git a/slides/sysdev-linux-intro-versioning/sysdev-linux-intro-versioning.tex b/slides/sysdev-linux-intro-versioning/sysdev-linux-intro-versioning.tex
index 4ff1c37b..1129ff1f 100644
--- a/slides/sysdev-linux-intro-versioning/sysdev-linux-intro-versioning.tex
+++ b/slides/sysdev-linux-intro-versioning/sysdev-linux-intro-versioning.tex
@@ -23,7 +23,7 @@
\end{frame}
\begin{frame}
- \frametitle{New development model}
+ \frametitle{Linux development model}
Using merge and bug fixing windows
\begin{center}
\includegraphics[width=\textwidth]{slides/sysdev-linux-intro-versioning/new-development-process.pdf}
More information about the training-materials-updates
mailing list