[bootlin/training-materials updates] master: Boot time agenda: switch to 3 days (666ba5ae)
Michael Opdenacker
michael.opdenacker at bootlin.com
Fri Dec 13 14:16:38 CET 2019
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/666ba5aea06b2fbc5a456872811089b68f5bf81d
>---------------------------------------------------------------
commit 666ba5aea06b2fbc5a456872811089b68f5bf81d
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Fri Dec 13 14:16:38 2019 +0100
Boot time agenda: switch to 3 days
- According to experience from the last session
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
666ba5aea06b2fbc5a456872811089b68f5bf81d
agenda/boot-time-agenda.tex | 93 +++++++++++++++++++-----
labs/boot-time-toolchain/boot-time-toolchain.tex | 2 +-
2 files changed, 74 insertions(+), 21 deletions(-)
diff --git a/agenda/boot-time-agenda.tex b/agenda/boot-time-agenda.tex
index a1b36de4..83eb1f64 100644
--- a/agenda/boot-time-agenda.tex
+++ b/agenda/boot-time-agenda.tex
@@ -20,7 +20,7 @@
\LARGE
Boot Time Optimization Training\\
\large
-2-day session
+3-day session
\end{center}
\vspace{1cm}
@@ -48,7 +48,7 @@ Boot Time Optimization Training\\
\newline \url{https://bootlin.com/doc/training/boot-time}. \\
\hline
- {\bf Duration} & {\bf Two} days - 16 hours.
+ {\bf Duration} & {\bf Three} days - 24 hours.
\newline 25\% of lectures, 75\% of practical labs. \\
\hline
@@ -118,12 +118,18 @@ Boot Time Optimization Training\\
{Lab - Preparing the system}
{
\begin{itemize}
- \item Compiling the bootloader, kernel and root filesystem
- \item Setting up the system, customizing the build system
+ \item Downloading bootloader, kernel and Buildroot source code
+ \item Board setup, setting up serial communication
+ \item Configure Buildroot and build the system
+ \item Configure and build the U-Boot bootloader. Prepare an SD card
+ and boot the bootloader from it.
+ \item Configure and build the kernel. Boot the system
\end{itemize}
}
-\feagendaonecolumn
+\section{Day 1 - Afternoon}
+
+\feagendatwocolumn
{Lecture - Measuring time}
{
\begin{itemize}
@@ -132,18 +138,27 @@ Boot Time Optimization Training\\
\item Specific solutions for each stage
\end{itemize}
}
-
-
-\section{Day 1 - Afternoon}
-
-\feagendatwocolumn
-{Lab - Measuring time}
+{Lab - Measuring time - Software solution}
{
\begin{itemize}
\item Modify the system to measure time at various steps
- \item Measure total boot time by toggling a GPIO
+ \item Timing messages on the serial console
+ \item Timing the execution of the application
+ \item Timing the launching of the application
\end{itemize}
}
+
+\feagendatwocolumn
+{Lab - Measuring time - Hardware solution}
+{
+ \begin{itemize}
+ \item Measure total boot time by toggling a GPIO
+ \item Setting up an Arduino board
+ \item Preparing a test circuit with a 7-segment display
+ \item Modifying the DTS to configuring Bone Black pins as GPIOs
+ \item Making the application drive the custom GPIOs
+ \end{itemize}
+}
{Lecture - Toolchain optimizations}
{
\begin{itemize}
@@ -154,6 +169,18 @@ Boot Time Optimization Training\\
\end{itemize}
}
+\feagendaonecolumn
+{Lab - Toolchain optimizations}
+{
+ \begin{itemize}
+ \item Measuring application execution time
+ \item Switching to a Thumb2 toolchain
+ \item Generate a Buildroot SDK to rebuild faster
+ \end{itemize}
+}
+
+\section{Day 2- Morning}
+
\feagendatwocolumn
{Lecture - Application optimization}
{
@@ -167,17 +194,17 @@ Boot Time Optimization Training\\
\begin{itemize}
\item Finding unnecessary configuration options in applications
\item Modifying configuration options through Buildroot
- \item Experiements with \code{strace} to trace program execution
+ \item Experiments with \code{strace} to trace program execution
\end{itemize}
}
-\section{Day 2- Morning}
\feagendatwocolumn
{Lecture - Optimizing system initialization}
{
\begin{itemize}
\item Using Bootchart
\item Optimizing init scripts
+ \item Possibility to start your application directly
\end{itemize}
}
{Lab - Optimizing system initialization}
@@ -190,13 +217,17 @@ Boot Time Optimization Training\\
\end{itemize}
}
+\section{Day 2 - Afternoon}
+
\feagendatwocolumn
{Lecture - Filesystem optimizations}
{
\begin{itemize}
\item Available filesystems, performance and boot time aspects
+ \item Making UBIFS faster
\item Tweaks for reducing boot time
\item Booting on an initramfs
+ \item Using static executables: licensing constraints
\end{itemize}
}
{Lab - Filesystem optimizations}
@@ -208,15 +239,14 @@ Boot Time Optimization Training\\
\end{itemize}
}
-\section{Day 2 - Afternoon}
-
\feagendatwocolumn
{Lecture - Kernel optimizations}
{
\begin{itemize}
\item Using {\em Initcall debug} to generate a boot graph
\item Compression and size features
- \item Tweaks to reduce boot time
+ \item Reducing or suppressing console output
+ \item Multiple tweaks to reduce boot time
\end{itemize}
}
{Lab - Kernel optimizations}
@@ -228,21 +258,44 @@ Boot Time Optimization Training\\
\end{itemize}
}
+\section{Day 3 - Morning}
+
+\feagendaonecolumn
+{Lab - Kernel optimizations}
+{
+ \begin{itemize}
+ \item Continued from Day 2
+ \end{itemize}
+}
+
+\section{Day 3 - Afternoon}
+
\feagendatwocolumn
{Lecture - Bootloader optimizations}
{
\begin{itemize}
\item Compiling U-Boot with less features
\item U-Boot configuration settings that impact boot time
- \item Optimzing kernel loading
- \item Skipping the bootloader
+ \item Optimizing kernel loading
+ \item Skipping the bootloader - U-Boot's Falcon mode
\end{itemize}
}
{Lab - Bootloader optimizations}
{
\begin{itemize}
\item Using the above techniques to make the bootloader
- as quick as possible.
+ as quick as possible.
+ \item Switching to faster storage
+ \item Skip the bootloader with U-Boot's Falcon mode
+ \end{itemize}
+}
+
+\feagendaonecolumn
+{Wrap-up - Achieved results}
+{
+ \begin{itemize}
+ \item Sharing and comparing results achieved by the various groups
+ \item Questions and answers, experience sharing with the trainer
\end{itemize}
}
diff --git a/labs/boot-time-toolchain/boot-time-toolchain.tex b/labs/boot-time-toolchain/boot-time-toolchain.tex
index 3a14aaf1..67a3448c 100644
--- a/labs/boot-time-toolchain/boot-time-toolchain.tex
+++ b/labs/boot-time-toolchain/boot-time-toolchain.tex
@@ -150,7 +150,7 @@ and performance benefits?
Don't hesitate to show your results to your instructor.
-\section{Generate a Buildroot SDK}
+\section{Generate a Buildroot SDK to rebuild faster}
With Buildroot, it's frequent to need to run \code{make clean} and
thus make a full rebuild, typically after configuration changes.
More information about the training-materials-updates
mailing list