\section{Performance} \begin{frame} \frametitle{Lastsimulation} \begin{block}{Festplattenlast} xdd \end{block} \begin{block}{Netzwerklast} auf niedriger priorisierte Ethernetports via flood ping \end{block} \begin{block}{CPU Last} cpuburnP5 \end{block} \end{frame} \begin{frame} \frametitle{Messmethode} \begin{tabular}[t]{r|l} One of the problems of taking things apart & \\ and seeing how they work & \\ \emph{supposing you're trying to find out how a cat works}& \\ you take that cat apart to see how it works, & \\ what you've got in your hands is a non-working cat. & \\ The cat wasn't a sort of clunky mechanism & \\ that was susceptible to our available tools of analysis. & \\ & \\ \textsl{Douglas Adams,} & \\ \textsl{Hitchhiker's Guide to the Galaxy} & \\ \end{tabular} \end{frame} \begin{frame} \frametitle{Ende zu Ende Latenz} \includegraphics[height=6cm]{../img/versuch1.jpg} \end{frame} %\begin{frame} % \frametitle{Datenflu\ss} % \begin{center} % \includegraphics[height=7cm]{../img/programmfluss.jpg} % \end{center} %\end{frame} \begin{frame} \frametitle{Schwierigkeiten} \begin{block}{Latenzschwankungen} \begin{description} \item[Ausl\"oser] flood ping auf Receiver \item[Ursache] gesharte net-softirqs \item[L\"osungen] \dots \\ \begin{itemize} \item IRQ Prozesse anders priorisieren \item IRQ 18 w\"ahrend RT Bearbeitung deaktivieren \item Abarbeitung aller Aufgaben in ISR des Netzwerkkartentreibers \item eigene softirqs f\"ur RT Ethernetdevices \end{itemize} \end{description} \end{block} \end{frame} \begin{frame} \frametitle{Schwierigkeiten} \begin{block}{Latenzschwankungen} \begin{description} \item[1. L\"osung] Priorisierung der IRQ Prozesse ver\"andert \item[dauerhafte L\"osung] linutronix beauftragt \end{description} \end{block} \end{frame} \begin{frame} \frametitle{Ergebnis} \begin{center} \includegraphics[height=6cm]{../img/v1/v1optOhneLast.jpg}\\ Ice Vergleichswert: $230 \mu s$ \end{center} \end{frame} \begin{frame} \frametitle{Ergebnis} \begin{center} \includegraphics[height=6cm]{../img/v1/v1opt.jpg} \end{center} \end{frame} %\begin{frame} % \frametitle{TAO Scheduling} % \begin{block}{Priority Inversion?} % \begin{itemize} % \item 2 verschieden priorisierte Objekte % \item 2 Threadpools % \item komplexe Berechnung (niedrig priorisiert) % \item Ports setzen (hoch priorisiert) % \end{itemize} % \end{block} %\end{frame} %\begin{frame} % \frametitle{TAO Scheduling} % \begin{block}{Ergebnis} % \begin{itemize} % \item t.b.d. % \end{itemize} % \end{block} %\end{frame} \begin{frame} \frametitle{RT EventService} \begin{block}{Supplier} \begin{itemize} \item sendet Port\"anderungen an RT EventService \end{itemize} \end{block} \pause \begin{block}{Consumer} \begin{itemize} \item registriert sich bei RT EventService \item bekommt \"Anderungen mitgeteilt \item setzt entsprechend die digitalen Ausg\"ange \end{itemize} \end{block} \end{frame} \begin{frame} \frametitle{Ergebnis} \begin{center} \includegraphics[height=6cm]{../img/v2Last.jpg} \\ mit Last \end{center} \end{frame} \begin{frame} \frametitle{Abh\"angigkeit Echtzeitverhalten - Datenmenge} \begin{center} \includegraphics[height=6cm]{../img/v4/plot.jpg} \end{center} \end{frame} %\begin{frame} % \frametitle{Abh\"angigkeit Echtzeitverhalten - Datenmenge} % \begin{block}{Bewertung Ergebnis} % \begin{itemize} % \item bei wachsenden Datenmengen entfernt sich worst-case stark von immediate-case % \item nach M\"oglichkeit mit mehreren verschieden priorisierten kleinen Datenpaketen arbeiten % \end{itemize} % \end{block} %\end{frame} %\begin{frame} % \frametitle{erweiterter Versuchsaufbau} % \begin{center} % \includegraphics[height=6cm]{../img/versuch4.jpg} % \end{center} %\end{frame} \begin{frame} \frametitle{erweiterter Versuchsaufbau} \begin{center} \includegraphics[height=6cm]{../img/arbeitsplatzpraes.jpg} \end{center} \end{frame} \begin{frame} \frametitle{Mehrere Teilnehmer, Priorisierung, verschiedene Interfacekonfigurationen} \begin{block}{getestete Interfacekonfigurationen} \begin{description} \item[PortAndMessage1] zwei Funktionen \\(setPort, sendMessage), \\ein Interface \item[PortAndMessage1] eine Funktion \\(setPortAndMessage), \\ein Interface \item[MessageAndPortSeperate] zwei Funktionen, \\zwei Interfaces \item[MessageOnly] eine Funktion, \\ein Interface \end{description} \end{block} \end{frame} \begin{frame} \frametitle{Schwierigkeiten} \begin{block}{QoS Switch} \begin{itemize} \item Hirschmann Switch: kein diffServ \item Cisco Switch: Konfiguration \end{itemize} \end{block} \end{frame} \begin{frame} \frametitle{Ergebnis} \begin{center} \includegraphics[height=6cm]{../img/v5/plot3d-hirschmann.jpg} \\ \emph{mit Hirschmann Switch} \end{center} \end{frame} \begin{frame} \frametitle{Ergebnis} \begin{center} \includegraphics[height=6cm]{../img/v5/plot3d-cisco.jpg} \\ \emph{mit Cisco Switch} \end{center} \end{frame} \begin{frame} \frametitle{Fazit TAO Real-time Performance} \begin{itemize} \item stark abh\"angig von Konfiguration und Implementation \item abh\"angig von allen Komponenten (OS, Netzwerk, ACE/TAO) \item bei korrekter Anwendung 1kByte - $1 ms$ \"uber Ethernet \end{itemize} \end{frame}