[FE training-materials-updates] android: Add a section about ION
Maxime Ripard
maxime.ripard at free-electrons.com
Fri Aug 30 16:46:45 CEST 2013
Repository : git://git.free-electrons.com/training-materials.git
On branch : jelly-bean
Link : http://git.free-electrons.com/training-materials/commit/?id=5c3e47492e86c49f8ebe4e17cc9b33f0401bdd1d
>---------------------------------------------------------------
commit 5c3e47492e86c49f8ebe4e17cc9b33f0401bdd1d
Author: Maxime Ripard <maxime.ripard at free-electrons.com>
Date: Tue Aug 20 11:04:09 2013 +0200
android: Add a section about ION
Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
>---------------------------------------------------------------
5c3e47492e86c49f8ebe4e17cc9b33f0401bdd1d
Makefile | 3 +-
.../android-kernel-changes-ion.tex | 37 ++++++++++++++++++++
.../android-kernel-changes-misc.tex | 6 ++--
3 files changed, 41 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index aace23e..2ab3be6 100644
--- a/Makefile
+++ b/Makefile
@@ -148,8 +148,9 @@ ANDROID_SLIDES = \
android-kernel-changes-klogger \
android-kernel-changes-ashmem \
android-kernel-changes-timers \
- android-kernel-changes-network \
android-kernel-changes-lmk \
+ android-kernel-changes-ion \
+ android-kernel-changes-network \
android-kernel-changes-misc \
android-bootloaders-title \
sysdev-bootloaders-sequence \
diff --git a/slides/android-kernel-changes-ion/android-kernel-changes-ion.tex b/slides/android-kernel-changes-ion/android-kernel-changes-ion.tex
new file mode 100644
index 0000000..bbbd254
--- /dev/null
+++ b/slides/android-kernel-changes-ion/android-kernel-changes-ion.tex
@@ -0,0 +1,37 @@
+\subsection{The ION Memory Allocator}
+\begin{frame}
+ \frametitle{ION 1/2}
+ \begin{itemize}
+ \item ION was introduced with Ice Cream Sandwich (4.0) version of
+ Android
+ \item Its role is to allocate memory in the system, for most of the
+ possible cases
+ \item The usual Linux memory allocators can only allocate a buffer
+ that is up to 512 pages wide, with a page usually being 4kiB.
+ \item There was previously for Android (and Linux in general) some
+ vendor specific mechanism to allocate larger physically contiguous
+ memory areas (\code{nvmap} for nVidia, \code{CMEM} for TI, etc.)
+ \item ION is here to unify the interface to allocate memory in the
+ system, no matter on which SoC you're running on.
+ \item It uses a system of heaps, with Linux publishing the heaps
+ available on a given system.
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{ION 2/2}
+ \begin{itemize}
+ \item By default, you have three different heaps:
+ \begin{description}
+ \item[system] Memory virtually contiguous memory, backed by
+ \code{vmalloc}
+ \item[system contiguous] Physically contiguous memory, backed by
+ \code{kmalloc}
+ \item[carveout] Large physically contiguous memory, preallocated
+ at boot
+ \end{description}
+ \item It also has a user-space interface so that processes can
+ allocate memory to work on.
+ \item \url{https://lwn.net/Articles/480055/}
+ \end{itemize}
+\end{frame}
diff --git a/slides/android-kernel-changes-misc/android-kernel-changes-misc.tex b/slides/android-kernel-changes-misc/android-kernel-changes-misc.tex
index 8c2515c..317d2ff 100644
--- a/slides/android-kernel-changes-misc/android-kernel-changes-misc.tex
+++ b/slides/android-kernel-changes-misc/android-kernel-changes-misc.tex
@@ -7,10 +7,8 @@
\begin{itemize}
\item RAM Console, a RAM-based console that survives a reboot to
hold kernel logs
- \item \textit{pmem}, a physically contiguous memory allocator, written
- specifically for the HTC G1, to allocate heaps used for 2D
- hardware acceleration. Replaced by ION:
- \url{https://lwn.net/Articles/480055/}
+ \item \textit{pmem}, a physically contiguous memory allocator,
+ written specifically for the Qualcomm MSM SoCs. Obsolete Now.
\item ADB
\item YAFFS2
\item Timed GPIOs
More information about the training-materials-updates
mailing list