More slides

This commit is contained in:
Théophile Bastian 2018-09-02 13:08:58 +02:00
parent 46be751a37
commit 225903591b

View file

@ -280,11 +280,63 @@ unwind_context_t _eh_elf(
\section{Benchmarking}
\begin{frame}{Benchmarking requirements}
\todo{}
\begin{enumerate}
\item Thousands of samples (single unwind: $10\,\mu{}s$)
\item Interesting enough program to unwind: nested functions, complex
FDEs
\item Mitigate caching: don't always unwind from the \emph{same} point
\item Yet be fair: don't always unwind from totally different places
\item Distribute evenly: if possible, also from within libraries
\end{enumerate}
\pause{}\vspace{1em}
\begin{itemize}
\item 2 $\implies$ exit hand-crafted program, exit CSmith
\item 5 $\implies$ cannot call the unwinding procedure by hand
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{}
\subsection{Unwinding using perf}
\begin{frame}{Presentation of perf}
\textbf{A profiler is used to\ldots}
\begin{itemize}
\item get readings of the \alert{time spent in each function}
\item detect ``hot paths'': functions you ought to optimize
\item \ldots{}and \alert{benchmark \ehelfs{}}!
\end{itemize}
\vspace{1em}\pause{}
\textbf{How does it work?}
\begin{itemize}
\item{} \alert{Polling profiler}: stops at regular intervals to perform
analyses
\item{} Upon polling, \alert{dumps the stack} to a file
\item{} In the analysis phase (after the program terminated),
\alert{unwinds all the stacks gathered} to get call paths
\end{itemize}
\end{frame}
\begin{frame}{perf instrumentation}
\textbf{Instrumenting perf matches all the requirements!}
\vspace{1em}\pause{}
\begin{itemize}
\item{} \alert{Plug \ehelfs{} into perf}: use \ehelfs{} instead of
DWARF to analyze stack dumps
\item{} Implement \alert{unwinding performance counters} inside perf
\bigskip{}
\item{} Use perf on \alert{hackbench}, a kernel stress-test program
\begin{itemize}
\item Small program
\item Lots of calls
\item Relies on libc, libpthread
\end{itemize}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{A glance at future work}