10 research outputs found

    Conception d'un analyseur de binaire ARM

    Get PDF
    Nous proposons de rĂ©aliser un programme permettant l’analyse de binaires exĂ©cutables compilĂ©s pour l’architecture ARM. Plus prĂ©cisĂ©ment, cet analyseur permet d’extraire les informations nĂ©cessaires Ă  la reconstruction de l’architecture du programme. Cette reconstruction architecturale comprend la dĂ©tection des instructions de branchement, la rĂ©cupĂ©ration des fonctions utilisĂ©es par le dĂ©veloppeur, ainsi que les liens entre ces diffĂ©rentes fonctions. Sous certaines conditions (Ă©noncĂ©es dans la section 1.4), la reconstruction est fidĂšle Ă  la structure du programme Ă©tudiĂ©, et notre analyseur est capable de tracer le graphe d’appel ainsi que le graphe de flot de contrĂŽle (CFG). Bien que le but de ce projet ne soit pas de dĂ©compiler des exĂ©cutables binaires, il pose les bases pour une Ă©tude de ce genre. En effet, il permet de dĂ©limiter les fonctions et les branchements inter-procĂ©duraux, ce qui serait une premiĂšre Ă©tape dans la rĂ©cupĂ©ration complĂšte du code source d’un programme. Pour le lecteur intĂ©ressĂ©, des utilitaires de dĂ©compilation existent dĂ©jĂ  Ă  ce jour et sont mentionnĂ©s dans la section 2.2

    Traçage logiciel assisté par matériel

    Get PDF
    RĂ©sumĂ© Les logiciels deviennent de plus en plus complexes. Avec l'avĂšnement de l'informatique embarquĂ©e, la limitation des ressources les contraint Ă  s'exĂ©cuter en Ă©conomisant le temps, la mĂ©moire et l'Ă©nergie. Dans ce contexte, les dĂ©veloppeurs ont besoin d'outils pour dĂ©boguer et optimiser les programmes qu'ils Ă©crivent. Parmi ces outils, le traçage est une solution particuliĂšrement adaptĂ©e qui enregistre l'occurrence d'Ă©vĂ©nements, en interagissant peu avec l'exĂ©cution. Elle permet de mettre en Ă©vidence les causes de bogues ou les goulots d'Ă©tranglement qui ralentissent le programme. LTTng est un traceur focalisĂ© sur les performances : grĂące Ă  des structures de donnĂ©es propres Ă  chaque coeur et Ă  des verrous non-bloquants, l'enregistrement d'un Ă©vĂ©nement prend moins d'une microseconde sur une machine rĂ©cente. Ce dĂ©lai est toutefois nonnĂ©gligeable,il empĂȘche de tracer un nombre arbitraire de points sans affecter les performances. De plus, le code et les donnĂ©es liĂ©es au traçage sont stockĂ©s dans l'espace mĂ©moire du processus Ă©tudiĂ©, ce qui cause un impact sur son exĂ©cution. L'utilisation de blocs matĂ©riels dĂ©diĂ©s au dĂ©bogage pallie Ă  ces limitations. Il existe une multitude de ces circuits, prĂ©sents sur la plupart des processeurs du marchĂ©, Ă  des fins de dĂ©bogage et de profilage. En rĂ©utilisant leurs capacitĂ©s Ă  des fins de traçage, nous proposons de soulager la partie logicielle d'outils comme LTTng, et ainsi d'accroĂźtre leurs performances. Pour ce faire, nous utilisons les modules matĂ©riels STM, ETM et ETB de la suite CoreSight sur les processeurs ARM, ainsi que BTS sur les processeurs x86 d'Intel. Certains offrent une fonctionnalitĂ© de traçage d'exĂ©cution, c'est-Ă -dire d'enregistrement de la liste des instructions exĂ©cutĂ©es; d'autres fournissent des ressources spĂ©cialisĂ©es pour l'estampillage de temps, l'envoi de messages sur des canaux dĂ©diĂ©s, et le stockage de traces. Dans ce mĂ©moire, nous proposons des implĂ©mentations de traçage logiciel s'aidant du matĂ©riel pour ĂȘtre moins intrusifs que les outils purement logiciels. Nous visons Ă  rĂ©duire le surcoĂ»t en temps engendrĂ© par le traçage, c'est-Ă -dire le nombre de cycles ajoutĂ©s Ă  une exĂ©cution normale, tout en gardant le mĂȘme dĂ©tail d'information que fournit une trace. Nous montrons que l'utilisation conjointe des modules STM et ETB pour faire transiter les traces par des circuits matĂ©riels dĂ©diĂ©s Ă©conomise la mĂ©moire du processus et que la durĂ©e des points de trace est divisĂ©e par dix par rapport Ă  LTTng. En utilisant ETM et ETB, le surcoĂ»t du traçage est lui aussi rĂ©duit : entre -30% et -50% par rapport Ă  notre traceur de rĂ©fĂ©rence. En revanche, les capacitĂ©s du traceur d'exĂ©cution ETM limitent notre systĂšme Ă  seulement quelques points de trace enregistrables dans tout le programme. Finalement, l'utilisation de BTS sur les processeurs Intel est aussi plus efficace : les points de trace sont presque deux fois plus rapides que ceux de LTTng. Cependant, ce systĂšme ne permet pas de choisir quels Ă©vĂ©nements tracer : tous les branchements pris par le processeur sont enregistrĂ©s. Cette lourdeur rend BTS inutilisable pour faire du traçage d'Ă©vĂ©nements ; nĂ©anmoins pour du traçage d'exĂ©cution, la rĂ©-implĂ©mentation que nous proposons est 65% plus rapide que celle de Perf, l'outil par dĂ©faut sous Linux.---------Abstract Software is becoming increasingly complex. With the advent of embedded computing, resource limitations force it to run in a way saving time, memory and energy. In this context, developers need tools to debug and optimize the programs they write. Among these tools, tracing is a particularly well suited solution that records the occurrence of events, while minimally interacting with the execution. It allows to identify the causes of bugs or bottlenecks that slow down the program. LTTng is a tracer focused on performance: through per-core data structures and nonblocking locks, recording an event takes less than one microsecond on a typical computer. However, this delay is not negligible, and tracing an arbitrary number of points is not possible without affecting performance. In addition, the code and data related to tracing are stored in the memory space of the process being studied, causing an impact on its execution. The use of dedicated debug hardware blocks overcomes these limitations. There are a multitude of these circuits, present on most processors on the market, for of debugging and profiling purposes. By reusing their capacity for tracing purposes, we propose to alleviate the software part of tracing tools such as LTTng, and thereby increase their performance. To do this, we use STM, ETM and ETB hardware modules from the CoreSight suite on ARM processors, as well as BTS on Intel x86 processors. Some offer an execution tracing feature, i.e. recording the list of executed instructions; others provide specialized resources for timestamping, transfering messages on dedicated channels, and storing traces. In this thesis, we propose implementations of software tracing that take advantage of hardware to be less intrusive than pure-software tools. We aim to reduce the time overhead induced by tracing, i.e. the number of cycles added to a normal execution, while keeping the same detailed information as a trace provides. We show that the combined use of STM and ETB modules to send traces through dedicated hardware circuits saves process memory and that each tracepoint duration is divided by ten as compared to LTTng. Using ETM and ETB, the overhead of tracing is also reduced: between -30% and -50% as compared to our reference tracer. However, the capacity of the ETM execution tracer limits our system to only a few recordable tracepoints throughout the program. Finally, the use of BTS on Intel processors is also more efficient: tracepoints are almost two times faster than LTTng. However, it is not possible to choose which events to trace with this system: all branches taken by the processor are stored. This limitation makes BTS unusable for event tracing; however, for execution tracing the re-implementation we offer is 65% faster than Perf, the default tool on Linux

    Hardware-assisted software event tracing

    Get PDF
    Event tracing is a reliable and a low-intrusiveness method to debug and optimize systems and processes. Low overhead is particularly important in embedded systems where resources and energy consumption is critical. The most advanced tracing infrastructures achieve a very low footprint on the traced software, bringing each tracepoint overhead to less than a microsecond. To reduce this still non-negligible impact, the use of dedicated hardware resources is promising. In this paper, we propose complementary methods for tracing that rely on hardware modules to assist software tracing. We designed solutions to take advantage of CoreSight STM, CoreSight ETM, and Intel BTS, which are present on most newer ARM-based systems-on-chip and Intel x86 processors. Our results show that the time overhead for tracing can be reduced by up to 10 times when assisted by hardware, as compared to software tracing with LTTng, a high-performance tracer for Linux. We also propose a modification to the Perf tool to speed BTS execution tracing up to 65%

    Gaseous emissions (building, storage, pasture) of dairy systems combining or not grazing and housing

    No full text
    Session 05International audienceSustainable dairy farms need to make better use of feed resources, reduce the use of inputs and their environmental impacts, particularly in terms of nitrogen (N) losses. Dairy cattle are largely fed on grazed grass in Western Europe but, at certain times of the year, conserved forages and concentrates may be added to the animal diet. Few studies have investigated the consequences of this combination on the animal’s N use and manure composition. Moreover, inthese situations, animals divide their time between grazing, where urine and solid excreta fall directly onto the soil, and the building, where manure need to be managed and stored, leading to contrasted impacts on the environment. Our project focuses on strategies combining grazed and conserved forages in dairy systems and their consequences on N flows and environmental impacts. Several experiments were conducted to compare animal performance, N use efficiency and gaseous emissions (ammonia and greenhouse gases) of full-housing (FH) vs half-housing-half-grazing (HH-HG) vs full grazing (FG) management systems in spring and autumn 2022. In the FH treatment, cows were housed in mechanically ventilated rooms where they were fed a basic diet of maize silage and concentrates ad libitum. Manure was scraped, collected and transferred to controlled pens. Gaseous emissions were measured in the house and during manure storage by spot air samples, with several methods. In the FG treatment, cows grazed a temporary pasture equipped with an eddy covariance flux tower and several trace gas infrared analysers (NH3, N2O, CH4, CO2, H2O), and ALPHA passive diffusion samplers for NH3 coupled with short-range atmospheric dispersion modelling for the determination of field-scale gaseous emissions. Cows on the HH-HG treatment were housed in a mechanically ventilated room at night (receiving 8 kg DM of the basic diet) and grazed on a temporary pasture during the day (8 hours). The results will contribute to the acquisition of new knowledge on these mixed systems especially in terms of gaseous losses over the whole continuum of cattle feeding and manure management

    Gaseous emissions (building, storage, pasture) of dairy systems combining or not grazing and housing

    No full text
    Session 05International audienceSustainable dairy farms need to make better use of feed resources, reduce the use of inputs and their environmental impacts, particularly in terms of nitrogen (N) losses. Dairy cattle are largely fed on grazed grass in Western Europe but, at certain times of the year, conserved forages and concentrates may be added to the animal diet. Few studies have investigated the consequences of this combination on the animal’s N use and manure composition. Moreover, inthese situations, animals divide their time between grazing, where urine and solid excreta fall directly onto the soil, and the building, where manure need to be managed and stored, leading to contrasted impacts on the environment. Our project focuses on strategies combining grazed and conserved forages in dairy systems and their consequences on N flows and environmental impacts. Several experiments were conducted to compare animal performance, N use efficiency and gaseous emissions (ammonia and greenhouse gases) of full-housing (FH) vs half-housing-half-grazing (HH-HG) vs full grazing (FG) management systems in spring and autumn 2022. In the FH treatment, cows were housed in mechanically ventilated rooms where they were fed a basic diet of maize silage and concentrates ad libitum. Manure was scraped, collected and transferred to controlled pens. Gaseous emissions were measured in the house and during manure storage by spot air samples, with several methods. In the FG treatment, cows grazed a temporary pasture equipped with an eddy covariance flux tower and several trace gas infrared analysers (NH3, N2O, CH4, CO2, H2O), and ALPHA passive diffusion samplers for NH3 coupled with short-range atmospheric dispersion modelling for the determination of field-scale gaseous emissions. Cows on the HH-HG treatment were housed in a mechanically ventilated room at night (receiving 8 kg DM of the basic diet) and grazed on a temporary pasture during the day (8 hours). The results will contribute to the acquisition of new knowledge on these mixed systems especially in terms of gaseous losses over the whole continuum of cattle feeding and manure management
    corecore