Data Mining Approach to Temporal Debugging of Embedded Streaming Applications - Archive ouverte HAL Accéder directement au contenu
Thèse Année : 2016

Data Mining Approach to Temporal Debugging of Embedded Streaming Applications

Une Approche de Fouille de Données pour le Débogage Temporel des Applications Embarquées de Streaming

Résumé

Debugging streaming applications run on multimedia embedded systems found in modern consumer electronics (e.g. in set-top boxes, smartphones, etc) is one of the most challenging areas of embedded software development. With each generation of hardware, more powerful and complex Systems-on-Chip (SoC) are released, and developers constantly strive to adapt their applications to these new platforms. Embedded software must not only return correct results but also deliver these results on time in order to respect the Quality-of-Service (QoS) properties of the entire system. The non-respect of QoS properties lead to the appearance of temporal bugs which manifest themselves in multimedia embedded systems as, for example, glitches in the video or cracks in the sound. Temporal debugging proves to be tricky as temporal bugs are not related to the functional correctness of the code, thus making traditional GDB-like debuggers essentially useless. Violations of QoS properties can stem from complex interactions between a particular application and the system or other applications; the complete execution context must be, therefore, taken into account in order to perform temporal debugging. Recent advances in tracing technology allow software developers to capture a trace of the system’s execution and to analyze it afterwards to understand which particular system activity is responsible for the violations of QoS properties. However, such traces have a large volume, and understanding them requires data analysis skills that are currently out of the scope of the developers’ education. In this thesis, we propose SATM (Streaming Application Trace Miner) - a novel temporal debugging approach for embedded streaming applications. SATM is based on the premise that such applications are designed under the dataflow model of computation, i.e. as a directed graph where data flows between computational units called actors. In such setting, actors must be scheduled in a periodic way in order to meet QoS properties expressed as real-time constraints, e.g. displaying 30 video frames per second. We show that an actor which does not eventually respect its period at runtime causes the violation of the application’s real-time constraints. In practice, SATM is a data analysis workflow combining statistical measures and data mining algorithms. It provides an automatic solution to the problem of temporal debugging of streaming applications. Given an execution trace of a streaming application exhibiting low QoS as well as a list of its actors, SATM firstly determines exact actors’ invocations found in the trace. It then discovers the actors’ periods, as well as parts of the trace in which the periods are not respected. Those parts are further analyzed to extract patterns of system activity that differentiate them from other parts of the trace. Such patterns can give strong hints on the origin of the problem and are returned to the developer. More specifically, we represent those patterns as minimal contrast sequences and investigate various solutions to mine such sequences from execution trace data. Finally, we demonstrate SATM’s ability to detect both an artificial perturbation injected in an open source multimedia framework, as well as temporal bugs from two industrial use cases coming from STMicroelectronics. We also provide an extensive analysis of sequential pattern mining algorithms applied on execution trace data and explain why state-of-the-art algorithms fail to efficiently mine sequential patterns from real-world traces.
Débogage des applications de streaming qui s'exécutent sur les systèmes embarqués multimédia (trouvés dans les boîtes décodeurs, smartphones, et autres appareils électroniques grand public) est l'un des domaines les plus exigeants dans le développement de logiciel embarqué. Les nouvelles générations du materiél embarqué introduisent des nouvelles systèmes sur une puce, qui fait que les développeurs du logiciel doivent adapter leurs logiciels aux nouvelles platformes. Le logiciel embarqué doit non seulement fournir des résultats corrects mais aussi le faire à temps réél afin de respecter les propriétés de qualite de service (Quality-of-Service, QoS) du système. Lorsque les propriétés QoS ne sont pas respectées, les bugs temporels font son apparition. Ces bugs se manifestent comme, par exèmple, des glitches dans le flux vidéo ou des craquements dans le flux audio. Le débogage temporel est en général difficile à effectuer car les bugs temporels n'ont pas souvent de rapport avec l'exactitude fonctionnelle du code des applications, ce qui fait les outils de débogage traditionels, comme GDB, peu utiles. Le non-respect des propriétés QoS peut originer des interactions entre les applications ou entre les applications et les processus systèmes. Par conséquent, le contexte d'exécution entier doit être pris en compte pour le débogage temporel. Les avancements récents en collecte des traces d'exécution permettent les développeurs de recueillir des traces et de les analyser après la fin d'exécution pour comprendre quelle activité système est responsable des bugs temporels. Cependant, les traces d'exécution ont une taille conséquente, ce qui demande aux devéloppeurs des connaissainces en analyse de données qu'ils normalement ne possedent pas. Dans cette thèse, nous proposons SATM - une approche novateur pour le débogage temporel des applications de streaming. SATM repose sur la premisse que les applications sont conçues avec le modèle dataflow, i.e. peuvent être représentées comme un graphe orienté où les données coulent entre des unités de calcul (fontions, modules, etc.) appelées "acteurs". Les acteurs doivent être ordonnés de manière périodique afin de respecter les propriétés QoS représentées par les contraintes de temps-réél, e.g. une affichage des 30 trames vidéo par seconde. Nous montrons qu'un acteur qui ne respecte pas de façon répétée sa période pendant l'exécution de l'application cause la violation des contraintes temps-reel de l'application. Pratiquement, SATM est un workflow d'analyse de données venant des traces d'exécution qui combine des mesures statistiques avec des algorithmes de fouille de données. SATM fournit une méthode automatique du débogage temporel des applications de streaming. Notre approche prend en entrée une trace d'exécution d'une application ayant une basse QoS ainsi qu'une liste de ses acteurs, et tout d'abord détecte des invocations des acteurs dans la trace. SATM ensuite découvre les périodes des acteurs ainsi que les séctions de la trace où la période n'a pas été respectée. Enfin, ces séctions sont analysées afin d'extraire des motifs de l'activité système qui différencient ces sections des autres séctions de la trace. Tels motifs peuvent donner des indices sur l'origine du problème temporel dans le systeme et sont rendu au devéloppeur. Plus précisément, nous représentons ces motifs comme des séquences contrastes minimales et nous étudions des différentes solutions pour fouiller ce type de motifs à partir des traces d'exécution. Finalement, nous montrons la capacité de SATM de détecter une perturbation temporelle injectée artificiellement dans un framework multimedia GStreamer, ainsi que des bugs temporels dans les deux cas d'utilisation des applications de streaming industrielles provenant de la société STMicroelectronics. Aussi, nous fournissons une analyse extensive des algorithmes de fouille de motifs séquentiels appliqués sur les données venant des traces d'exécution, et nous expliquons quelle est la raison que les algorithmes de pointe n'arrivent pas à fouiller les motifs séquentiels à partir des traces d'exécution de façon efficace
Fichier principal
Vignette du fichier
Thesis_Iegorov_english.pdf (3.69 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-01321286 , version 1 (25-05-2016)

Identifiants

  • HAL Id : tel-01321286 , version 1

Citer

Oleg Iegorov. Data Mining Approach to Temporal Debugging of Embedded Streaming Applications. Embedded Systems. Université Grenoble Alpes, 2016. English. ⟨NNT : ⟩. ⟨tel-01321286⟩
233 Consultations
177 Téléchargements

Partager

Gmail Facebook X LinkedIn More