Skip to content

Commit

Permalink
preempt-rt: more rtla stuff
Browse files Browse the repository at this point in the history
Signed-off-by: Maxime Chevallier <[email protected]>
  • Loading branch information
minimaxwell committed Oct 3, 2023
1 parent ef72eab commit 6cf9bee
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 12 deletions.
37 changes: 25 additions & 12 deletions slides/realtime-linux-benchmarking/realtime-linux-benchmarking.tex
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,18 @@ \section{Testing and Benchmarking}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{rtla}
\textbf{R}eal\textbf{T}ime \textbf{L}inux \textbf{A}nalysis tool
\begin{itemize}
\item Developped by Daniel Bristot de Oliveira
\item High-level interface to the \code{timerlat} and \code{osnoise} tracers
\item \code{rtla osnoise|timerlat top|hist} gives high-level view of noise and latencies
\item Can generate histograms, that can then be visualized
\end{itemize}

\end{frame}

\begin{frame}
\frametitle{osnoise}
\begin{itemize}
Expand Down Expand Up @@ -145,6 +157,19 @@ \section{Testing and Benchmarking}
%%% Schematics
\end{frame}

\begin{frame}
\frametitle{rtla autoanalysis}
\begin{itemize}
\item Running \code{timerlat -a <us>} will trigger the auto-analysis mode
\item A threshold is set with \code{-a}
\item Measurement will stop if a latency higher than the threshold is detected
\item Timerlat then prints a stack trace with the cause of the latency
\item Can identify if the latency comes from a \textbf{blocking} or an \textbf{interference}
\item Can identify the \textbf{task} of \textbf{interrupt} at the origin of the latency
\item Can identify if the \textbf{hardware} itself is the culprit
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{kernelshark}
\begin{itemize}
Expand All @@ -157,18 +182,6 @@ \section{Testing and Benchmarking}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{rtla}
\textbf{R}eal\textbf{T}ime \textbf{L}inux \textbf{A}nalysis tool
\begin{itemize}
\item Developed by Daniel Bristot de Oliveira
\item High-level interface to the \code{timerlat} and \code{osnoise} tracers
\item \code{rtla osnoise|timerlat top|hist} gives high-level view of noise and latencies
\item Can generate histograms, that can then be visualized
\end{itemize}

\end{frame}

\begin{frame}
\frametitle{cyclictest}
\begin{itemize}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ \section{Configuring the system}
\item \code{while read i; do /bin/echo $i; done < /dev/cpuset/tasks > /dev/cpuset/nontrt-set/tasks}
\item \code{/bin/echo $$ > /dev/cpuset/rt-set/tasks}
\end{itemize}
\item You can run tasks in a given set with \code{cgexec -g cpuset:rt-set ...}
\end{itemize}
\end{frame}
Expand All @@ -85,9 +86,27 @@ \section{Configuring the system}
\item IRQs can be pinned to CPUs by tweaking \code{/proc/irq/XX/smp_affinity}
\item The \code{irqbalance} tool monitors and distributes the irq affinty to spread the load across CPUs
\item Use the \code{IRQBALANCE_BANNED_CPUS} environment variable to make \code{irqbalance} ignore some CPUs
\item The \code{irqaffinity} cmdline parameter can also be used
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{RCU Callbacks and Workqueues}
\begin{center}\textbf{RCU}\end{center}
\begin{itemize}
\item \textbf{R}ead \textbf{C}opy \textbf{U}pdate
\item Synchronisation mechanism that can deferred object reclamation
\item Deffered reclamation can be executed on any CPU \code{RCU callbacks}
\item We can preven CPU cores from running RCU callbacks with \code{rcu_nocbs=<cpus> rcu_nocb_poll}
\end{itemize}
\begin{center}\textbf{Workqueues}\end{center}
\begin{itemize}
\item Deferred execution mechanism
\item Can be pinned to CPUs in \code{/sys/devices/virtual/workqueue/cpumask}
\end{itemize}
\end{frame}
%TODO RCU/workqueues
% scheduling classes
\input{../common/scheduling-classes.tex}
Expand Down

0 comments on commit 6cf9bee

Please sign in to comment.