6 research outputs found

    Low-level trace correlation on heterogeneous embedded systems

    Get PDF
    Tracing is a common method used to debug, analyze, and monitor various systems. Even though standard tools and tracing methodologies exist for standard and distributed environments, it is not the case for heterogeneous embedded systems. This paper proposes to fill this gap and discusses how efficient tracing can be achieved without having common system tools, such as the Linux Trace Toolkit (LTTng), at hand on every core. We propose a generic solution to trace embedded heterogeneous systems and overcome the challenges brought by their peculiar architectures (little available memory, bare-metal CPUs, or exotic components for instance). The solution described in this paper focuses on a generic way of correlating traces among different kinds of processors through traces synchronization, to analyze the global state of the system as a whole. The proposed solution was first tested on the Adapteva Parallella board. It was then improved and thoroughly validated on TI’s Keystone 2 System-on-Chip (SoC)

    Synchronisation de traces distribuées à l'aide d'événements de bas niveau

    Get PDF
    RÉSUMÉ Le traçage d’événement a prouvé son efficacité dans l’identification de problèmes de fonctionnalité et de performance. Il peut s’appliquer dans le développement d’applications, de systèmes d’exploitation et de pilotes matériels. Pour l’appliquer également à des systèmes distribués, il est possible d’enregistrer des traces individuellement sur chaque noeud puis de regrouper ces traces lors de l’analyse a posteriori. Il faut alors que les estampilles de temps associées aux événements soient synchronisées avec fidélité et justesse. Ce mémoire traite de la synchronisation hors ligne de groupes de traces enregistrées sur un système distribué. L’objectif est d’identifier un algorithme de synchronisation de trace précis, qui s’exécute en temps linéaire par rapport au nombre d’événements dans le groupe de traces, qui garantit l’absence d’inversion de message et qui peut déterminer des bornes sur la justesse. Dans l’approche préconisée, le traçage noyau enregistre avec une faible intrusivité des événements correspondant à l’envoi et la réception de messages réseau. Les relations d’ordre entre ces événements sont utilisées pour construire une base de temps globale. L’approche se concentre sur la synchronisation de paires de traces à l’aide de fonctions linéaires de correction d’horloge. Les paramètres de ces fonctions sont identifiés à l’aide de l’algorithme basé sur la méthode des enveloppes convexes. Cet algorithme garantit l’absence d’inversion de message et il a été étendu afin de déterminer des bornes sur la justesse à tout moment lors du traçage. L’algorithme a été intégré à un outil de visualisation de trace. Son application à des traces réelles, variées et de grandes tailles révèle que la précision de la synchronisation est favorisée par l’utilisation d’un réseau à plus faible latence ou d’un débit de message plus élevé. En contrepartie, une durée de traçage plus longue réduit la précision et fausse la détermination des bornes de justesse. Cette situation est mise en évidence grâce à l’utilisation de métriques sur les temps de transfert des messages après synchronisation. L’étude de la performance de l’algorithme confirme qu’il peut réaliser la synchronisation avec un ordre d’exécution linéaire. La détermination des bornes de justesse a un comportement quadratique dans le pire des cas, mais, avec des traces réelles, elle s’exécute en temps presque linéaire. Lors de nos expériences, nous avons atteint une justesse de ±15 us et une précision estimée à 9 us sur un réseau comportant une latence minimale estimée à 39 us. La détermination de bornes sur la justesse de la synchronisation représente une avancée scientifique alors que l’implantation efficace de l’algorithme de synchronisation dans un système de traçage pratique représente une avancée technique.----------ABSTRACT Event tracing has proven to be a valuable tool for identifying functional and performance problems. It has helped to identify problems at the application, operating system and device driver level. In order to extend its benefits to distributed systems, one approach is to record traces individually on each node and to analyze them in a post-processing step. In order for this to be meaningful, the timestamps in the traces have to be synchronized with precision and accuracy. This dissertation focuses on offline synchronization of traces recorded on distributed systems. The objective is to identify a trace synchronization algorithm that is precise, has a linear run time order in regards to the number of events in the traces, that can guarantee the absence of message inversions and identify accuracy bounds. The method put forward uses kernel tracing to record network events with a low intrusiveness. A global timebase is built by analyzing the strict ordering relationships between events that correspond to the emission and reception of messages. We concentrate on the synchronization of pair of traces using linear clock correction functions. The parameters of these functions are identified using the convex hull algorithm. It guarantees the absence of message inversions and it has been extended to identify accuracy bounds at any point in the tracing interval. This algorithm was contributed to a trace analysis tool and was used on a variety of long running and large traces recorded on real systems. The experiments conducted show that offline synchronization accuracy is improved by using a network with lower latency and by using a higher message rate. With a constant message rate, lengthening the trace duration reduces precision and gives a false impression of improving accuracy. This is detected using metrics based on message propagation delays after synchronization. Synchronization factors can be found in linear time. The time to find accuracy bounds is quadratic in the worst case but it scales almost linearly on practical traces. During our experiments, we have achieved a synchronization accuracy of ±15 us and an estimated precision of 9 us on a network with an estimated minimum propagation delay of 39 us. Identifying strict accuracy bounds during offline synchronization of traces represents a scientific advance whereas the efficient implementation of a trace synchronization algorithm in a practical tool represents a technical progress

    Accurate offline synchronization of distributed traces using kernel-level events

    No full text

    Traçage de systèmes embarqués hétérogènes

    Get PDF
    RÉSUMÉ Pouvoir analyser et comprendre les interactions entre les composants d’un système embarqué hétérogène est essentiel pour détecter les fautes, trouver la cause de latences et optimiser les ressources. Bien souvent, des solutions propriétaires d’analyse sont directement fournies par les distributeurs. Cependant, ces solutions sont souvent incomplètes ou insuffisantes : elles nécessitent parfois de mettre le système en pause, ne sont pas adaptées pour plus d’une dizaine de processeurs analysés ou induisent des baisses de performance trop importantes. Le traçage est une technique répandue qui consiste à enregistrer des évènements, associés à des estampilles de temps, à certains points de l’application. Tracer un système permet d’obtenir toutes les informations imaginables, avec une granularité de l’ordre de la nanoseconde. Cela permet entre autres d’effectuer des débogages complets et de diagnostiquer les problèmes de performance, que ce soit sur une machine isolée ou dans un système distribué. Néanmoins, si le traçage est très utilisé dans les systèmes « classiques », il n’en reste pas moins marginal pour les systèmes embarqués, qui offrent souvent des caractéristiques techniques bien différentes. L’objectif de ce travail est de montrer comment il est possible de surmonter les difficultés techniques introduites par les systèmes embarqués hétérogènes (processeurs spécialisés, absence de système d’exploitation, peu de mémoire disponible, architectures exotiques…) pour produire une solution de traçage universelle sur de tels systèmes. Nous espérons ainsi démontrer que toute plateforme hétérogène embarquée peut être tracée avec les mêmes outils et dans le même format, généralisant ainsi le traçage de ces systèmes et facilitant par le fait même le travail des développeurs. Nous montrons ainsi comment l’utilisation de barectf, un outil python produisant du code C destiné à générer des points de trace CTF dans des applications tournant sans système d’exploitation (bare-metal), permet de tracer virtuellement n’importe quelle plateforme. La carte Parallella et le système sur puce Keystone 2 de TI seront nos deux modèles d’expérimentation. Nous verrons ensuite comment la synchronisation de traces peut être généralisée à de telles plates-formes pour permettre l’analyse de traces provenant d’un environnement multi-coeurs hétérogène. Finalement, nous démontrerons à travers un cas d’étude que les méthodes et solutions proposées sont valides, fonctionnent et permettent bien de répondre aux besoins spécifiques de ces plates-formes, leur apportant une solution de traçage générique, portable et efficace.----------ABSTRACT Being able to analyze and understand interactions between all the components of a heterogeneous embedded system is mandatory to detect bugs, find the causes of latencies and optimize the resources. Proprietary solutions are often directly shipped by the producing companies. However, such solutions are rarely sufficient: they sometime require the system to be paused, are not suitable for more than a few cores and might impact the overall performances. Tracing is a well-known technic which goal is to record timestamp-matched events. Tracing a system allows a deep understanding of the system as a whole and brings information at a nanosecond rate. This allows, among other things, to debug complete systems and diagnose performances issues, on a single machine as well as on a distributed system. Nevertheless, even if tracing is well-used in classical systems, it is still marginal on embedded systems, which are often a lot different. The goal of this work is to show how it is possible to overcome the difficulties induced by heterogeneous embedded systems (specialized processors, no operating system, few available memory, exotic architectures…) and to have a generic tracing solution for such devices. We hope to demonstrate that every heterogeneous embedded platform can be traced with the same tools and the same output format, thus generalizing the tracing solutions on those devices and easing the developers’ work. To do so, we show how barectf, a python tool generating C code providing CTF tracepoints on devices with no operating system (bare-metal), allow the tracing of virtually any platform. The Parallella board and the System-on-Chip Keystone 2 from TI will be our two experimenting devices. We will then see how traces synchronization can be generalized on such platforms and allow traces analysis on many-cores heterogeneous environments. Finally, we will demonstrate through a use-case that the proposed solutions and methods are valid and are well-suited for those platforms, thus bringing a generic, portable and efficient tracing solution

    Plataforma de Monitorización Híbrida para la evaluación de Redes Inalámbricas de Sensores

    Full text link
    Las Redes Inalámbricas de Sensores (WSN por sus siglas en inglés) han demostrado ser fundamentales en la implementación de paradigmas como el denominado Internet de las Cosas. Sin embargo, por su forma de funcionamiento y entornos donde operan, este tipo de redes son susceptibles a errores o problemas durante su operación. La monitorización de las WSN, durante su desarrollo, despliegue o a lo largo de su vida útil, es la mejor forma de observar cómo trabajan, ya sea con fines de depuración, verificación o control de su operación. Las plataformas de monitorización suelen clasificarse según su enfoque, bien activo o bien pasivo. Los monitores activos requieren algún nivel de modificación en el sistema monitorizado y permiten adquirir información más precisa de la operación de la WSN, pero pueden interferir con su funcionamiento. Por otro lado, los monitores pasivos no requieren modificación del sistema observado por lo que prácticamente no causan intrusión en la misma, pero la información obtenida puede no ser suficiente. Existen también los bancos de pruebas, que pueden funcionar tanto de forma pasiva como de forma activa, pero su uso está limitado a entornos de laboratorio. Un monitor puede clasificarse como hardware o software en función de su naturaleza. También se ha definido un enfoque híbrido, donde se combinan elementos de hardware y software en la monitorización. Además, se denomina como híbrida a cualquier propuesta que combine al menos dos enfoques de funcionamiento (activo/pasivo, hardware/software). En este sentido, existen contadas propuestas híbridas de monitorización para WSN, pero están enfocadas a un tipo específico de nodos, su funcionamiento es limitado, y en ocasiones solo se han presentado de forma teórica. En esta tesis se presenta la propuesta de una Plataforma de Monitorización Híbrida, denominada HMP (Hybrid Monitoring Platform), orientada a la evaluación del comportamiento de cualquier WSN. Esta plataforma busca combinar los enfoques de monitorización activo y pasivo para aprovechar las ventajas de ambos al tiempo que se compensan sus inconvenientes. La arquitectura de la plataforma sigue un Modelo de Referencia genérico para plataformas de monitorización distribuida. Este modelo busca que los sistemas propuestos puedan ser aplicables a cualquier WSN, y que la independencia de niveles permita que los avances en un nivel del modelo no impliquen cambios en los otros, además de simplificar la interoperabilidad entre plataformas. La plataforma consta de tres tipos de componentes principales: Los Nodos Monitores, que se conectan de forma activa a los nodos de la WSN; los Nodos Espías, que capturan en el medio compartido los mensajes enviados por la aplicación WSN a monitorizar; y finalmente un Servidor de Monitorización. Los dos primeros componentes registran los eventos observados de la aplicación WSN a monitorizar, registrando el instante de tiempo en que éstos ocurren, y los hacen llegar al tercero, encargado de coordinar la recolección de los datos obtenidos por los otros componentes. El Servidor de Monitorización procesa los datos obtenidos, combinándolos en una única traza que refleja el comportamiento global de la aplicación. Esta traza puede ser analizada para evaluar las prestaciones, optimizar el funcionamiento o detectar problemas durante el diseño, despliegue u operación de la WSN. HMP utiliza un novedoso mecanismo de sincronización de las marcas de tiempo de los datos obtenidos. Este mecanismo, denominado GTSO (Global Trace Synchronization and Ordering Mechanism), realiza una sincronización fuera de línea. Su funcionamiento es simple pero efectivo, como se demuestra en las pruebas realizadas. Además, evita que existan cambios en el orden correcto de los eventos registrados. La plataforma completa ha demostrado su utilidad mediante la monitorización de una WSN real, obteniendo resultados satisfactorios. Además, HMP puede ser aplicadaWireless Sensor Networks (WSN) have proven to be fundamental in the implementation of paradigms such as the Internet of Things. However, due to their mode of operation and the environments where they work, this type of networks is susceptible to errors or problems in their functioning. The monitoring of the WSN, during its development as in the deployment or throughout its useful life, is the best way to observe how they work, either for debugging purposes, verification or operation control. Monitoring platforms are usually categorized according to their working approach, either active or passive. Active monitors require some type of modification in the monitored system but they allow to obtain more precise information about the operation of the WSN. However, they may interfere with their operation. On the other hand, passive monitors do not require modification of the observed system so they practically do not cause interference or intrusion in it, but the information obtained may not be sufficient. There are also testbeds, which can function both in a passive way and in an active way, but their use is restricted to laboratory environments. A monitor can be also categorized as hardware or software depending on its composition. A hybrid approach has also been defined, where hardware elements and software elements are combined in the monitoring process. Besides, proposals that combine at least two operational approaches (active/passive, hardware/software) have been called "hybrid". In this sense, there are few hybrid monitoring proposals for WSN, but they are focused on a specific type of nodes, their operation is limited, or they have only been presented as a theoretical proposal. This thesis presents the proposal of a Hybrid Monitoring Platform, called HMP. Its main objective is to evaluate the behavior of any WSN. This platform combine active and passive monitoring approaches to exploit their advantages while compensating their drawbacks. The architecture of the platform follows a generic reference model for WSN monitoring platforms. This model enables that proposed systems can be applicable to any WSN. Moreover, the independence of levels allows that improvements at a model level do not imply changes in the others levels and simplifies interoperability between platforms. The platform consists of three main components: The Monitors Nodes, which are actively connected to the WSN nodes; Sniffer Nodes, which capture from the shared media the messages sent by the WSN application to be monitored; and finally, a Monitoring Server. The first two components register the observed events of the WSN application to be monitored together with the time they were captured. Finally, they send that information to the third component, that is in charge of coordinating the data collection obtained by the other components. The Monitoring Server processes the data obtained and combines them into a single trace that reflects the global behavior of the application. This trace can be analyzed to evaluate the performance, optimize the operation or detect problems during the design, deployment, synchronization or operation of the WSN. HMP uses a novel synchronization mechanism for the time stamps of the data obtained. This mechanism, called GTSO (Global Trace Synchronization and Ordering Mechanism), performs an off-line synchronization. Its operation is simple but effective, as demonstrated in the tests carried out. In addition, it prevents changes in the correct order of recorded events. The complete platform has proven its usefulness by monitoring a real WSN, obtaining satisfactory results. In addition, HMP can be applied in a modular and simple way to different types of WSN.Les xarxes sense fils de sensors (WSN per les seves sigles en anglès) han demostrat ser fonamentals en la implementació de paradigmes com el anomenat Internet de los Coses. Malgrat això, per la seva forma de funcionament i els entorns on treballen, aquestes xarxes són susceptibles a errors durant la seva operació. El monitoratge de les WSN, tant durant el seu desenvolupament, com en el seu desplegament o al llarg de la seva vida, és la millor forma de observar el seu funcionament, ja sigui amb finalitats de depuració, verificació o control de la seva operació. Les plataformes de monitoratge solen classificar-se segons el seu enfoc: actiu o passiu. Els monitors actius requereixen algun nivell de modificació en el sistema analitzat i permeten adquirir informació més precisa de l'operació de la WSN, però poden interferir amb el seu funcionament. D'altra banda, els monitors passius no requereixen modificar el sistema observat pel que pràcticament no causen interferència, però la informació obtinguda pot no ser suficient. Existeixen també els bancs de proves (testbeds en anglès), que poden funcionar tant de forma passiva com activa, però el seu ús està limitat a entorns de laboratori. Un monitor pot classificar-se com a maquinari o programari en funció de la seva naturalesa. També existeix un enfoc híbrid, on es combinen elements maquinari i programari en el procés de monitoratge. S'ha denominat com a híbrid a qualsevol proposta que combini almenys dos enfocaments de funcionament (actiu/passiu, maquinari/programari). En aquest sentit, existeixen poques propostes híbrides de monitoratge per WSN, però estan enfocades a un tipus específic de nodes, el seu funcionament és limitat, i en ocasions solament s'han presentat com a proposta teòrica. En aquesta tesi es presenta la proposta d'una Plataforma de Monitoratge Híbrid, denominada HMP (Hybrid Monitoring Platform), orientada a l'avaluació del comportament de qualsevol WSN. Aquesta plataforma busca combinar els enfocs de monitoratge actiu i passiu per aprofitar els avantatges d'aquests al mateix temps que es compensen els seus inconvenients. L'arquitectura de la plataforma segueix un model de referència genèric per a plataformes de monitoratge de WSN. Aquest model busca que els sistemes proposats puguin ser aplicables a qualsevol WSN, i que la independència de nivells permeti que els avanços en un nivell del model no impliquin canvis en els altres, a més de simplificar la interoperabilitat entre plataformes. A la plataforma proposada poden trobar-se tres tipus de components principals: Els Nodes Monitors, que es connecten de forma activa als nodes de la WSN; els Nodes Espies, que capturen en el mitjà compartit els missatges enviats per l'aplicació WSN a analitzar; i finalment un Servidor de Monitoratge. Els dos primers components registren els esdeveniments observats de l'aplicació WSN a analitzar, alhora que registren l'instant de temps en que tenen lloc, i els fan arribar al tercer, encarregat de coordinar la recol·lecció de les dades obtingudes pels altres components. Llavors, el Servidor de Monitoratge processa les dades obtingudes, combinant-los en una única traça que reflecteix el comportament global de l'aplicació. Aquesta traça pot ser analitzada per avaluar les prestacions, optimitzar el funcionament o detectar problemes durant el disseny, desplegament o operació de l'WSN. HMP usa un nou mecanisme de sincronització de les marques de temps de les dades obtingudes. Aquest mecanisme, denominat GTSO (Global Trace Synchronization and Ordering Mechanism), realitza una sincronització fora de línia. El seu funcionament és simple però efectiu, com es demostra en les proves realitzades, i evita que existeixin canvis en l'ordre correcte dels esdeveniments registrats. La plataforma completa ha demostrat la seva utilitat mitjançant el monitoratge d'una WSN real, obtenint resultats satisfactoris. A més, HMP pot ser aplicada de formaNavia Mendoza, MR. (2018). Plataforma de Monitorización Híbrida para la evaluación de Redes Inalámbricas de Sensores [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/106343TESI
    corecore