10 research outputs found
Conception d'un analyseur de binaire ARM
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
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
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
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
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