[bootlin/training-materials updates] master: Boot time agenda updates (5a6edc7e)
Michael Opdenacker
michael.opdenacker at bootlin.com
Thu May 23 23:27:44 CEST 2019
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/5a6edc7e252e35e671b72410235fa8ec862e7248
>---------------------------------------------------------------
commit 5a6edc7e252e35e671b72410235fa8ec862e7248
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Thu May 23 23:27:44 2019 +0200
Boot time agenda updates
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
5a6edc7e252e35e671b72410235fa8ec862e7248
agenda/boot-time-agenda.tex | 144 ++++++++++++++-------
.../boot-time-course-outline.tex | 6 +-
2 files changed, 101 insertions(+), 49 deletions(-)
diff --git a/agenda/boot-time-agenda.tex b/agenda/boot-time-agenda.tex
index a7cf5f55..b8fde14e 100644
--- a/agenda/boot-time-agenda.tex
+++ b/agenda/boot-time-agenda.tex
@@ -40,16 +40,16 @@ Boot Time Optimization Training\\
Reducing kernel boot time \par
Bootloader optimizations \par
Advanced techniques and alternatives \par
- Practical labs with ARM boards (SAMA5D3x evaluation kits from
- Microchip).\\
+ Practical labs with ARM boards (Beagle Bone Black
+ boards).\\
\hline
{\bf Materials} &
- Check that the course contents correspond to your needs:
+ Will soon be published on
\newline \url{https://bootlin.com/doc/training/boot-time}. \\
\hline
- {\bf Duration} & {\bf One} day - 8 hours.
- \newline 50\% of lectures, 50\% of practical labs. \\
+ {\bf Duration} & {\bf Two} days - 16 hours.
+ \newline 25\% of lectures, 75\% of practical labs. \\
\hline
{\bf Trainer} & One of the engineers listed on
@@ -85,7 +85,7 @@ Boot Time Optimization Training\\
installed in a {\bf free partition of at least 30 GB. Using Linux
in a virtual machine is not supported}, because of issues
connecting to real hardware.
- \item We need Ubuntu Desktop 12.04 (Xubuntu and other
+ \item We need Ubuntu Desktop 18.04 (Xubuntu and other
variants are fine). We don't support other
distributions, because we can't test all possible package versions.
\item {\bf Connection to the Internet} (direct or through the
@@ -105,7 +105,7 @@ Boot Time Optimization Training\\
\normalsize
-\section{Morning}
+\section{Day 1 - Morning}
\feagendatwocolumn
{Lecture - Principles}
@@ -115,84 +115,136 @@ Boot Time Optimization Training\\
\item Main ideas
\end{itemize}
}
-{Lab - Measuring boot time}
+{Lab - Preparing the system}
{
\begin{itemize}
- \item Flashing the board and accessing its serial line
- \item Measure the initial boot time
+ \item Compiling the bootloader, kernel and root filesystem
+ \item Setting up the system, customizing the build system
\end{itemize}
}
+\feagendaonecolumn
+{Lecture - Measuring time}
+{
+ \begin{itemize}
+ \item Generic software techniques
+ \item Hardware techniques
+ \item Specific solutions for each stage
+ \end{itemize}
+}
+
+
+\section{Day 1 - Afternoon}
+
\feagendatwocolumn
-{Lecture - Userland optimizations}
+{Lab - Measuring time}
+{
+ \begin{itemize}
+ \item Modify the system to measure time at various steps
+ \item Measure total boot time by toggling a GPIO
+ \end{itemize}
+}
+{Lecture - Toolchain optimizations}
+{
+ \begin{itemize}
+ \item Introduction to toolchains
+ \item C libraries
+ \item Size information
+ \item Measuring executable performance with \code{time}
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Application optimization}
{
\begin{itemize}
- \item Methodology
- \item Using bootchart
- \item Optimize init scripts
- \item Reduce size (C library, compiler optimizations...)
- \item Use an initramfs
- \item Toolchains
+ \item Using \code{strace}
+ \item Other profiling techniques
\end{itemize}
}
-{Lab - Reducing boot time in user space}
+{Lab - Application optimization}
{
\begin{itemize}
- \item Regenerate the root filesystem with Buildroot
- \item Use bootchart to measure boot time
- \item Simplify user space scripts
+ \item Finding unnecessary configuration options in applications
+ \item Modifying configuration options through Buildroot
+ \item Experiements with \code{strace} to trace program execution
\end{itemize}
}
-\section{Afternoon}
+\section{Day 2- Morning}
\feagendatwocolumn
-{Lecture - Kernel optimizations}
+{Lecture - Optimizing system initialization}
{
\begin{itemize}
- \item Reducing kernel size
- \item Choosing the right compression method
- \item Reducing kernel initialization time
+ \item Using Bootchart
+ \item Optimizing init scripts
\end{itemize}
}
-{Lab - Reducing kernel boot time}
+{Lab - Optimizing system initialization}
{
\begin{itemize}
- \item Recompile the kernel, switching to an initramfs
- \item Use \code{initcall_debug} to find the biggest
- time consumers
- \item Reduce the number of modules
- \item Tune kernel command line parameters
+ \item Using Buildroot to remove unnecessary scripts and commands
+ \item Access-time based technique to identify unused files
+ \item Simplifying BusyBox
+ \item Starting the application as the init program
\end{itemize}
}
\feagendatwocolumn
-{Lecture - Bootloader optimizations}
+{Lecture - Filesystem optimizations}
{
\begin{itemize}
- \item Reducing kernel image loading size
- \item Removing bootloader features
- \item Skipping the bootloader
+ \item Available filesystems, performance and boot time aspects
+ \item Tweaks for reducing boot time
+ \item Booting on an initramfs
\end{itemize}
}
-{Lab - Reducing bootloader time}
+{Lab - Filesystem optimizations}
{
\begin{itemize}
- \item Reduce boot time by using the Barebox bootloader
- \item Optimize Barebox
+ \item Trying and measuring two block filesystems: ext4 and SquashFS.
+ \item Trying and measuring the initramfs solution. Constraints
+ due to this solution.
\end{itemize}
}
-\feagendaonecolumn
-{Lecture - Advanced techniques}
+\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
+ \end{itemize}
+}
+{Lab - Kernel optimizations}
+{
+ \begin{itemize}
+ \item Generating and analyzing a boot graph for the kernel
+ \item Find and eliminate unnecessary kernel features
+ \item Find the best kernel compression solution for our system
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Bootloader optimizations}
{
\begin{itemize}
- \item More kernel tweaks
- \item More user space techniques
- \item Using strace
- \item Using oprofile
- \item Alternatives: suspend to RAM, hibernating, checkpointing
+ \item Compiling U-Boot with less features
+ \item U-Boot configuration settings that impact boot time
+ \item Optimzing kernel loading
+ \item Skipping the bootloader
\end{itemize}
}
+{Lab - Bootloader optimizations}
+{
+ \begin{itemize}
+ \item Using the above techniques to make the bootloader
+ as quick as possible.
+ \end{itemize}
+}
\end{document}
diff --git a/slides/boot-time-course-outline/boot-time-course-outline.tex b/slides/boot-time-course-outline/boot-time-course-outline.tex
index 28507d42..02dbac3e 100644
--- a/slides/boot-time-course-outline/boot-time-course-outline.tex
+++ b/slides/boot-time-course-outline/boot-time-course-outline.tex
@@ -13,8 +13,8 @@ Morning
Afternoon
\begin{itemize}
\item Lab: measuring time, software and hardware methods
+ \item Lecture and lab: finding the optimum toolchain
\item Lecture and lab: optimizing the application
- \item Lecture and lab optimizing system initialization
\end{itemize}
\end{columns}
\end{frame}
@@ -25,14 +25,14 @@ Morning
\column{0.5\textwidth}
Morning
\begin{itemize}
+ \item Lecture and lab optimizing system initialization
\item Lecture and lab: filesystem optimizations
- \item Lecture and lab: kernel optimizations
\end{itemize}
\column{0.5\textwidth}
Afternoon
\begin{itemize}
+ \item Lecture and lab: kernel optimizations
\item Lecture and lab: bootloader optimizations
- \item Going further: implement boot animation and progress bar.
\end{itemize}
\end{columns}
\end{frame}
More information about the training-materials-updates
mailing list