[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