\documentclass[dvipdfm,cjk]{beamer}

\usepackage[english]{babel}
\usepackage{fancybox}
\usepackage{ascmac}
\usepackage{ulem}
%\usepackage{bootabs}
\usepackage{hyperref}
\hypersetup{
 bookmarksnumbered=true,
 setpagesize=false,
 pdftitle={YetAnotherStableKernel},
 pdfauthor={Hisao Munakata},
 pdfsubject={COSCUP 2012},
 pdfkeywords={Linux; kernel; stable; LTSI;}}

\usetheme{Warsaw}

% add slide no. to Warsaw template
\defbeamertemplate*{footline}{shadow theme}
{%
  \leavevmode%
    	\hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm plus1fil,rightskip=.3cm]{author in head/foot}%
	        \usebeamerfont{author in head/foot}\insertframenumber\,/\,\inserttotalframenumber\hfill\insertshortauthor
	\end{beamercolorbox}%
	\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}%
		\usebeamerfont{title in head/foot}\insertshorttitle%
	\end{beamercolorbox}}%
\vskip0pt%
}

\setbeamertemplate{items}[square]

\logo{\includegraphics[height=0.4cm]{ltsilogo.eps}}

%% adjust line space partially
\newenvironment{narrowlinespace}{
 \baselineskip = 3.0mm
 }

%% add width changeable block definition
\newenvironment<>{varblock}[2][\textwidth]{
    \begin{center}
      \begin{minipage}{#1}
        \setlength{\textwidth}{#1}
          \begin{actionenv}#3
            \def\insertblocktitle{#2}
            \par
            \usebeamertemplate{block begin}}
  {\par
      \usebeamertemplate{block end}
    \end{actionenv}
  \end{minipage}
\end{center}}

%% add variable width hline
\newcommand{\bhline}[1]{\noalign{\hrule height #1}}  

\title{Yet another long-term stable kernel}
\subtitle{introduction of Linux Foundation project named "LTSI"}
\author[Hisao Munakata]{Hisao Munakata}
\institute[Renesas]{Renesas Solutions Corp.}
\date[2012-8-18 COSCUP2012]{August 18th 2012, COSCUP2012}

\begin{document}

\begin{frame}
 \titlepage{}
\end{frame}

\begin{frame}
 \frametitle{Agenda}
 \tableofcontents{}
\end{frame}

\begin{frame}
 \frametitle{who am I}
  \begin{itemize}
	  \item From embedded SoC provider company Renesas
  	  \vspace{0.3cm}
	  \item \textcolor{red}{Linux Foundation CE working Gr. Steering committee member\\LF/CEWG Architecture Gr. co-chair}
	  \vspace{0.1cm}
	  \item \textcolor{red}{One of LF/CEWG LTSI project initial proposer}
  	  \vspace{0.3cm}
	  \item LinuxCon Japan (and others) steering committee
	  \item At my company, I had been encouraging my team developers to send patch to the upstream
	  \item We have sent hundreds of patch to the LTSI 3.0
  \end{itemize}
\end{frame}

\section{Why we have initiated LTSI project}
\subsection{community long-term maintenance}

\begin{frame}
 \frametitle{Question : How did you choose your kernel version ?}
 {\large
 \begin{block}{}
 \begin{enumerate}
	 \item No care : part of distribution\footnote{i.e. Debian/Ubuntu/Fedora/\ldots}
	 \item No care : part of application platform\footnote{i.e. Android/Tizen/Genivi/\ldots}
	 \vspace{0.2cm}
	 \ \hrule width 4cm
 	 \vspace{0.2cm}
	 \item No option : development started with SoC vendor's BSP
	 \vspace{0.2cm}
	 \ \hrule width 4cm
 	 \vspace{0.2cm}
	 \item Selected : selected previously adopted kernel
	 \item Selected : selected today's latest fresh kernel\footnote{This is always our preference anyway}
 \end{enumerate}
 \end{block}}
\end{frame}
	
\begin{frame}
	\frametitle{Vintage \textcolor{yellow}{kernel} is not always matured as it \textcolor{yellow}{is not a wine}}
	\begin{alertblock}{\ Software lifetime}
		\ Software will die when its maintenance becomes discontinued
	\end{alertblock}
	\begin{itemize}
	 \item modern system software works as a part of connected world.
         \item application program and data changes (expands) all the time.
	 \item So software need to be maintained throughout its lifetime.\\
     	       ( Bug-fix, security-fix patch must be collected and applied.)
	\end{itemize}
	\begin{narrowlinespace}
		Some people want to stick on old kernel (like 2.6 series so far),
		as they think it is enough stabilized. However \textcolor{red}{code
		maturity is fully depends on how actively that version is kept maintained.
		In other word, how many patch flow happening against that kernel.}
	\end{narrowlinespace}
\end{frame}

\begin{frame}
 \frametitle{Community maintenance : stable and long-term stable}
 \begin{figure}[tb] 
  	\vspace{-1.0cm}
	 \begin{center}
		 \includegraphics[clip, angle=270, width=10.5cm]{ltsplan.eps}
	 \end{center}
 \end{figure} 
\end{frame}


\begin{frame}
 \frametitle{Upstream kernel maintenance expiration date}
 \narrowlinespace{
 Maintenance period = accept bug-fix and/or security-fix patches.\\
 Once expired, community will discontinue such patch collection activity. 
 If you want to keep it maintained after expiration, you need to invest someone to
 continue work on maintenance operation.} \\

 \begin{block}{}  
   \begin{tabbing}
     XX\=XXXXX\=XXXXX\= 01234567890 \kill
     \>\textcolor{red}{regular}\>\textcolor{red}{kernel} \>\textcolor{red}{= roughly 80 days} after its release\\ 
     \>LTS\footnote{long term stable version kernel} \>kernel \>= normally a few year length
   \end{tabbing} 
 \end{block}
 \narrowlinespace{
 \textcolor{red}{\\ Selecting LTS version kernel should be the best practice to minimize long-term kernel maintenance cost.}}
\end{frame}

\begin{frame} 
	\frametitle{LTS kernel version selection criteria}
 \vspace{-1.0cm}
 \begin{varblock}[11cm]{LTS selection rules}
 \begin{itemize}
  \item Bug-fix/security-fix patches must be provided to the enterprise server system for 5 years (or longer). 
  \item Then Linux distro requested community to continue patch collection for specific version kernel.
  \item LTS version = 2.6.16 / 2.6.27 / 2.6.32 / 2.6.34 / 2.6.35\ldots
 \end{itemize}  
  \begin{varblock}[10cm]{New stable-kernel rule proposed by Greg Kroah-Hartman}
  \vspace{0.3cm}
  \begin{itemize}
   \item CE industry demand for LTS is different time-line
   \item \textcolor{red}{select one version per year for LTS maintenance target}
   \item \textcolor{red}{keep it maintained for 2 year length after its release}
  \end{itemize}
  \end{varblock}
 \end{varblock}
\end{frame}

\subsection{why we needed LTSI}

\begin{frame}
 \frametitle{OK, LTS seems a good choice, but...}
 \begin{narrowlinespace}
	 Development speed of consumer product is relatively faster than
	 other industry like enterprise, automotive world. This might
	 cause delay of mainline kernel support catch up even such proposals
	 are already submitted in upstream community.\\
 \end{narrowlinespace}
 \begin{alertblock}{\ timing gap challenge for early adoption}
  \begin{itemize}
	  \item \textcolor{red}{Newly mainlined platform/SoC support is not available on LTS}
	  \item \textcolor{red}{Newly mainlined device drivers are still missing on LTS}
	  \item \textcolor{red}{Newly mainlined kernel features are still not available on LTS}
	  \item \textcolor{red}{LTS kernel might not include device errata fix local patch}
   \end{itemize}
  \end{alertblock}
  \vspace{0.3cm}
  \begin{narrowlinespace}
	  Then, we envisioned to create LTSI to solve these embedded industry issues
	  as an extension of community LTS release.
  \end{narrowlinespace}
\end{frame}

\begin{frame}
 \frametitle{LTS vs LTSI : What differs ?}
 \begin{alertblock}{LF/CEWG LTSI kernel}
	 \begin{itemize}
	 	 \item \textcolor{red}{\textbf {kernel features back-port form latest mainline}}
	 	 \item \textcolor{red}{\textbf {device drivers back-port from latest mainline}}
		 \item \textcolor{red}{\textbf {local patch (=not yet mainlined) integration}}
	 \end{itemize}
	 \vspace{-0.5cm}
	 \begin{varblock}[10cm]{community LTS kernel (is designed to be conservative)}
		 \begin{itemize}
			 \item only accept bug-fix back-port
			 \item only accept security-fix back-port
		 \end{itemize}
	 \vspace{-0.5cm}
	 \begin{varblock}[9cm]{upstream kernel}
		 \begin{itemize}
			 \item regularly migrated community kernel
		 \end{itemize}
	 \end{varblock}
 	\end{varblock}
 \end{alertblock}
\end{frame}

\begin{frame}
 \frametitle{Concept of LTSI}
 \begin{block}{}
 \begin{itemize}
	 \item Community \textcolor{red}{LTS + industry demanded} extra patches.
	 \item \textcolor{red}{Governed by LF/CEWG}
	 \item \textcolor{red}{Focus on kernel} code\footnote{device drivers are part of kernel, of course}, not aiming complete BSP
	 \item \textcolor{red}{CPU architecture and platform neutral}
	 \item Can be combined with existing platform\footnote{Android, Tizen, Yocto, WebOS and others}
	 \item \textcolor{red}{Comply with upstream} rules\footnote{e.g. signed-off-by process}
	 \item Industry friendly patch collection (\textcolor{red}{flexible patch forms}, etc)
	 \item Help CE (and others) industry to utilize Linux
 \end{itemize}
 \end{block} 
\end{frame}

\begin{frame}
 \frametitle{Who can do what for LTSI}
 \vspace{-0.9cm}
 \begin{table}[htbp]
 \begin{center}
 \small
 \begin{tabular}{lcccc}\bhline{1.5pt}
          	&  \multicolumn{4}{c}{membership category} \\ \cline{2-5} \\[-5pt]
		action			& \shortstack{CEWG\\AG voting} & \shortstack{CEWG\\Corporate} & \shortstack{CEWG\\Individual} & \shortstack{Other\\(public)} \\ \bhline{1.0pt}
	    	project web access	& yes  & yes  & yes & yes  \\ \hline
	    	code download		& yes  & yes  & yes & yes  \\ \hline
	    	ML subscription		& yes  & yes  & yes & yes  \\ \hline
		\textcolor{blue}{attend ICM\footnote{industry contact meeting} meeting}	& \textcolor{blue}{yes}  & \textcolor{blue}{yes}  &     &      \\ \hline
	    	send patch proposal 	& yes  & yes  & yes & yes  \\ \hline
	    	review patch by ML 	& yes  & yes  & yes & yes  \\ \hline
	    	discuss patch at meeting 	& yes  & yes  & yes &      \\ \hline
	    	vote for patch (if needed)		& yes  &      &     &      \\ \hline
 \end{tabular}
 \end{center}
 \end{table}
 \vspace{-0.2cm}
 \begin{narrowlinespace}
	 If you plan to adopt LTSI to your product, \textcolor{red}{we recommend you
	 to join Linux Foundation and become a CEWG/AG member \\to get full advantage of LTSI project.}
 \end{narrowlinespace}
\end{frame}
  
\section{LTSI creation process}
\subsection{patch collection}

\begin{frame}
\frametitle{Which code can be integrated to LTSI and how (1)}
\begin{exampleblock}{from upstream}
	\begin{itemize}
		\item newly adopted LTS bug-fix, security-fix \hfill(automatic)
		\item newly mainlined new kernel feature \hfill(request basis)
		\item newly mainlined new kernel driver \hfill(request basis)
		\item newly queued (to -rc version) code \hfill(request basis)
	\end{itemize}
\end{exampleblock}
\begin{block}{from SoC vendor}
	\begin{itemize}
		\item curved up from SoC vendor kernel tree \hfill(request basis)
		\item submitted to upstream but still in review \hfill(request basis)
		\item not mainlined chip workaround code \hfill(request basis)
	\end{itemize}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Which code can be integrated to LTSI and how (2)}
\begin{block}{from product producer, distribution}
	\begin{itemize}
		\item in-house bug-fix patch \hfill(request basis)
		\item private enhancement \hfill(request basis)
			\begin{itemize}
				\item \textcolor{red}{may require strict compatibility review}
			\end{itemize}
	\end{itemize}
\end{block}
\begin{block}{Others}
	\begin{itemize}
		\item not mainlined open-source project code \hfill(request basis)
			\begin{itemize}
				\item ideally mainline attempt history already exist.
				\item LTSI project will help re-attempt action.
			\end{itemize}
		\item LF/CEWG funded open project result \hfill(request basis)
	\end{itemize}
\end{block}
\end{frame}

\begin{frame}
 \frametitle{LTSI patch collection process}
  \begin{figure}[tb]
  	\vspace{-1.0cm}
	 \begin{center}
		 \includegraphics[clip, angle=270, width=11.0cm]{collection.eps}
	 \end{center}
 \end{figure}
\end{frame}

\subsection{validation and maintenance}
\begin{frame}
 \frametitle{LTSI validation to make actual release}
 \begin{narrowlinespace}
	 Once patch collection window is closed, LTSI project will provide \textcolor{red}{integrated snapshot for test} that includes all approved patches.
 \end{narrowlinespace}
 \begin{block}{During LTSI-staging period}
  \begin{itemize}
	  \item Anyone who send a patch should test your code.
	  \item \textcolor{red}{SoC vendor and distribution are expected to validate this snapshot}
		  using own reference development environment.
		  \begin{itemize}
			  \item LTSI is CPU/platform neutral. You can use your environment.
			  \item You can publish test result like \textcolor{blue}{\it ``LTSI tested''} 
				  or \textcolor{blue}{\it ``LTSI ready''}
			  \item When you send a feedback, please clarify your environment\\
				  (kernel config, test target spec ,reproduce procedure,..)
		  \end{itemize}
	  \item If you hit any issues (bug, regression,..) please report it to ML.\\
		  ( We did not have dedicated BTS system like Bugzilla so far. )
  \end{itemize}
 \end{block}
\end{frame}
 
\begin{frame}
 \frametitle{LTSI adoption process}
  \begin{figure}[tb] 
  	\vspace{-1.0cm}
	 \begin{center}
		 \includegraphics[clip, angle=270, width=11.0cm]{adoption.eps}
	 \end{center}
 \end{figure}  
\end{frame}

\section{Why we suggest you to use LTSI} 
\subsection{value offering}

\section{Status Update}
\subsection{LTSI status @2012-08}

\begin{frame}[fragile]
	\frametitle{LTSI public ML posting status {\small \ (as of end of July)}}
 \begin{figure}[tb]
  	\vspace{6.5cm}
	 \begin{center}
		 \includegraphics[clip, angle=270, width=9.5cm]{graph2b.eps}
	 \end{center}
  \end{figure}
\end{frame}

\begin{frame}[fragile]
	\frametitle{LTSI 3.0 git tree status}
 \begin{figure}[tb]
  	\vspace{6.4cm}
	\begin{center}
 	\includegraphics[clip, angle=270, width=11.0cm]{gitstat2.eps}
	\end{center}
  \end{figure}
\end{frame}

\begin{frame}
	\frametitle{LTSI 3.0 extended component}
	\textcolor{red}{We have added over 800 extra industry demanded patches upon community 3.0 LTS-kernel to create LTSI3.0.}
	\begin{block}{Extra stuff added on top of community 3.0-LTS}
	\begin{itemize}
		\item  {\Large patches.android}
		\item  {\Large patches.ltsi}
		\item  {\Large patches.lttng}
		\item  {\Large patches.pramfs}
		\item  {\Large patches.runtime\_pm}
		\item  {\Large scripts}
		\item  {\Large patches.armadillo800eva}
	\end{itemize}
	\end{block}
\end{frame}

\subsection{next step}
 
\begin{frame}
	\frametitle{Important LTSI milestone}
	\begin{block}{}
	\begin{description}
		\item[2011.10.26] \ \textcolor{red}{project launch @ELCE2011}
		\item[2012.02.01] \ \textcolor{red}{Greg Kroah-Hartman becomes LTSI chief maintainer}
		\item[2012.06.08] \ 1st Industry Contact Meeting @Yokohama
		\item[2012.06.30] \ \sout{\textcolor{darkgray}{LTSI 3.0 code release candidate date}}
		\item[2012.07.31] \ \textcolor{red}{LTSI 3.0 released (w/one month extra test)} 
		\item[2012.08.29] \ 2nd Industry Contact Meeting @San Diego
		\item[2012.09.01] \ \textcolor{red}{LTSI 3.4 staging-tree open}
		\item[2012.10.01] \ \textcolor{red}{LTSI 3.4 staging-tree close, start validation}
		\item[2012.11.05] \ \textcolor{red}{LTSI 3.4 release candidates @ELCE2012}
	\end{description}
	\end{block}
\end{frame}

\begin{frame}
\frametitle{LTSI 3.4 release schedule (tentative)}
 \begin{figure}[tb]  
  	\vspace{5.7cm}
	 \begin{center}
		 \includegraphics[clip, angle=270, width=11.0cm]{34plan.eps}
	 \end{center}
 \end{figure}
\end{frame}

\subsection{resources}

\begin{frame}[fragile]
\frametitle{LTSI resources}
	\begin{block}{source tree (git)}
		{\small
		\begin{itemize}
			\item release tree = will open at the end of June
			\item staging tree \\ {\tt \verb|http://git.linuxfoundation.org/ltsi-kernel.git|}
			\item upstreaming staging tree = will open soon
		\end{itemize}
		}
	\end{block}
	\begin{block}{communication method}
		{\small
		\begin{itemize}
			\item project web = {\tt \verb|http://ltsi.linuxfoundation.org/|}
			\item mailing list \\ {\tt \verb|http://lists.linuxfoundation.org/pipermail/ltsi-dev/|}
			\item social media = {\tt \verb|http://twitter.com/#!/LinuxLTSI|}
		\end{itemize}
		}
	\end{block}
\end{frame}

\subsection{conclusion \& call for action}

\begin{frame}
\frametitle{Conclusion}
	\begin{block}{}
		{\small
		\begin{itemize}
			\item LF/CEWG \textcolor{red}{launched LTSI project} to develop and distribute specially
				enhanced LTS kernel named LTSI for Embedded industry use. It contains some feature
				backport from current latest kernel, off-tree kernel patches owned by SoC
				vendor/product developer and others.
			\vspace{0.2cm}
			\item We believe \textcolor{red}{LTSI can dramatically reduce your own effort (=cost)} 
				for in-house kernel management. Also we hope LTSI can encourage CE company
				developer to send more code to upstream.
			\vspace{0.2cm} 
			\item Very first \textcolor{red}{LTSI release 3.0 has released at the end of July
				2012.} LTSI3.0 will be maintained (at least) until 2013 June timing.
			\vspace{0.2cm} 
		\item \textcolor{red}{Community maintainer decided 3.4 is the next LTS.} Following this decision we started preparation for \textcolor{red}{next LTSI 3.4 staging process to make LTSI3.4 release targeting ELCE2012@November.}
		\end{itemize}
		}
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{Call for action for  \textcolor{yellow}{LTSI3.4 (targeting 2012-11 release)}} 
	\begin{block}{For SoC vendor, CPU core provider}
		\begin{itemize}
			\item \textcolor{red}{Send your not-yet-mainlined (AKA vendor tree) code} to LTSI
			\item \textcolor{red}{Test LTSI} kernel on your environment and
				\textcolor{red}{feedback test result} 
			\item If any software workaround exist, please share that with us.
		\end{itemize}
	\end{block}
	\begin{block}{For product producer}
		\begin{itemize}
			\item \textcolor{red}{Adopt LTSI kernel} to reduce your in-house maintenance cost
			\item If you have \textcolor{red}{not-yet-mainlined bug-fix}, send it to LTSI
		\end{itemize}
	\end{block}
	\begin{block}{For software distributor, integrator}
		\begin{itemize}
			\item \textcolor{red}{Adopt and support LTSI} as your base kernel.
			\item Send us your \textcolor{red}{feedback to improve LTSI} and future upstream
		\end{itemize}
	\end{block}
\end{frame}
    
\end{document}
