[FE training-materials-updates] android: Add a section about ION

Maxime Ripard maxime.ripard at free-electrons.com
Thu Aug 22 11:51:54 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=8755d22d5c09c03b0fcc9e9e7634c8ba3982e64d

>---------------------------------------------------------------

commit 8755d22d5c09c03b0fcc9e9e7634c8ba3982e64d
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>


>---------------------------------------------------------------

8755d22d5c09c03b0fcc9e9e7634c8ba3982e64d
 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