<  Retour au portail Polytechnique Montréal

Traçage de systèmes linux multi-coeurs en temps réel

Raphaël Beamonte

Mémoire de maîtrise (2013)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (765kB)
Afficher le résumé
Cacher le résumé

Résumé

Le traçage est une méthode d'analyse de plus en plus populaire compte tenu de la précision des données qu'il permet de réunir concernant les activités d'un système. Nombre de systèmes demandent cependant aujourd'hui de fonctionner dans des conditions restreintes : c'est le cas des systèmes temps réel. Ces systèmes reposent sur le respect d'échéances dans le traitement de données. Autrement dit, une donnée exacte n'aura de valeur dans un système de ce type qu'à condition qu'elle soit obtenue dans les délais, sans quoi le système sera considéré défaillant. Ces conditions excluent par conséquent tout outil d'analyse impactant de manière significative la latence et les performances du système. Le traçage repose sur l'ajout de points de trace au sein de l'application ou du système d'exploitation tracé. Ces derniers vont générer des évènements lorsqu'ils sont atteints durant l'exécution et ainsi permettre de suivre l'état d'un système au fur et à mesure de son exécution. Cependant, la génération de ces données implique une modification dans le déroulement normal de l'application ou du système tracé, et par conséquent un impact. Il devient alors important de pouvoir quantifier cet impact de manière à savoir sous quelles conditions une application temps réel pourra ou ne pourra pas être tracée, autrement dit, de savoir si l'ajout de ce délai de traitement rendra le système défaillant, et par conséquent inadéquat au traçage. L'objectif de cette recherche est de montrer qu'il est tout à fait possible d'utiliser le traçage pour analyser de telles applications, et ce avec un impact en terme de latence que nous souhaitons quantifier pour le pire cas. Pour ce faire, nous allons définir un environnement de travail temps réel en étudiant les divers systèmes et configurations spéciales mis à disposition. Ensuite nous verrons quels sont les outils permettant de valider la qualité de notre environnement de travail et quel est leur fonctionnement. Nous comparerons par la suite les différents outils mettant à disposition des traceurs, et lesquels parmi eux nous permettent de corréler des traces du noyau et de l'espace utilisateur. Une fois l'environnement défini et vérifié et l'outil de traçage choisi, notre méthode expérimentale reposera sur un étalonnage du système temps réel permettant par la suite d'évaluer l'impact du traceur sous différents angles à l'aide de la création de différent scénarios d'analyse. Cette méthode expérimentale prendra en compte la latence ajoutée sur le système par l'instrumentation, le traçage mais aussi la qualité des traces obtenues. Ces éléments seront les marqueurs de qualité du traçage dans des conditions temps réel. L'hypothèse servant de point de départ de ce travail est qu'en isolant le fonctionnement du traceur de celui de l'application temps réel tracée, l'impact de l'outil de traçage sur l'application pourra être radicalement réduit. Les résultats de ce travail sont la découverte et l'intégration aux outils existants d'un modèle pour supprimer les communications entre l'application tracée et le traceur durant la période active de traçage, permettant ainsi de n'ajouter qu'une interférence minimale sur l'exécution normale de l'application, permettant ainsi de rendre le traçage apte à fonctionner dans nombre de conditions temps réel, du moment que le délai maximal qu'il ajoute entre dans l'échéance de celle-ci. De plus, l'outil npt créé comme outil d'étalonnage et d'analyse de l'impact a évolué au fur et à mesure de nos recherches et est maintenant un logiciel disposant de différentes options pour simuler de multiples scénarios d'exécution d'une application temps réel. Enfin, la méthodologie d'analyse de l'impact du traçage sur le système temps réel constitue elle aussi un des résultats de cette étude. Le résultat final est que l'utilisation du traçage pour une application temps réel s'exécutant dans l'espace utilisateur est viable pour la plupart des systèmes temps réel avec une latence ajoutée de seulement quelques microsecondes.

Abstract

Tracing is an analysis method increasingly popular. It provides a lot of information of high precision about a system or application. However, many systems need to operate under restricted conditions. This is the case of real-time systems. These systems are based on meeting deadlines in data processing. In other words, accurate data will only have a value if we can poduce it in a timely fashion, otherwise we will consider the system as defective. These conditions therefore exclude any analysis tool which could impact significantly the system latency or performance. Tracing is based on the addition of tracepoints directly in the application or operating system source code. There tracepoints will generate events when they are reached as part of the execution, and allow to monitor the system or application state during its run. Still, the generation of this data involves a change in the normal course of the traced system, hence an impact. It then becomes important to quantify this impact in order to know the conditions for tracing a real-time application, in other words, to know whether the added latency will invalidate the real-time condition, hence force to consider tracing as inedequate or not. The objective of this research is to prove that it is possible to use tracing to analyze such applications, thus quantifying the maximum impact in terms of latency. In order to do that, we will define a real-time work environment by studying the various systems and special configurations available, then we will see what tools allow to validate the quality of our work environment and how they work. We will then compare the various tracing tools and identify which allow us to correlate the kernel and userspace traces. Once we have setup and verified our real-time environment and selected our tracing tool, our experimental method will be based on real-time system calibration to subsequently assess the impact of the tracer from different use cases, using different analysis scenarios. This experimental method will take into account the latencies added by the instrumentation and the tracing of the system, but also the quality of the generated traces. These elements will be considered as quality markers of real-time tracing. The hypothesis serving as starting point for this work is that, by isolating the work of the tracer from that of the real-time application, the impact of the tracing tool on the application can radically be reduced. The results of this work are the discovery and integration in existing tools of a model to remove the direct connections, between the traced application and the tracer, while the tracing operations are active. This allows to only add a minimal interference to the normal execution of the application, thereby making tracing able to operate multiple real-time cases, as long as the maximum latency added can be supported by the traced application. In addition, the npt tool created as the calibation and impact analysis tool has evolved during our research and now offers options allowing to simulate multiple execution scenarios of real-time applications. Finally, the real-time tracing impact analysis methodology we developed is also one of the results of this study. The final result is that using tracing to analyze real-time applications running in userspace is a valid and good option for most real-time systems, adding latencies in the low microsecond range.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Michel Dagenais
URL de PolyPublie: https://publications.polymtl.ca/1173/
Université/École: École Polytechnique de Montréal
Date du dépôt: 23 oct. 2013 10:50
Dernière modification: 05 avr. 2024 18:04
Citer en APA 7: Beamonte, R. (2013). Traçage de systèmes linux multi-coeurs en temps réel [Mémoire de maîtrise, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/1173/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document