EMB_82

EMBEDDED 82 • NOVEMBRE • 2021 53 TRACE TOOLS | SOFTWARE Utilizzo dei tool di trace in ambiente Linux Mohammed Billoo, fondatore di MAB Labs , una realtà specializzata nel fornire servizi di ingegnerizzazione di software embedded, utilizza Linux embedded su una molteplicità di piattaforme hardware. Billoo ha valutato in che modo il nuovo supporto di Percepio Tracealyzer per Linux embedded sia in grado di aiutare tutti coloro che sono impegnati nello sviluppo di sistemi embedded, dall’analisi dei driver e del gestore degli interrupt (interrupt handler) all’esame delle applicazioni dello spazio utente e delle opzioni di compilazione Alessandro Nobile L a più recente versione di Tracealyzer utilizza il formato CTF (Common Trace Format) per fornire infor- mazioni estremamente dettagliate durante il debug del software e la verifica a livello di sistema consentendo analisi visuali di tipo “top down”. Ciò aiuta gli sviluppa- tori a identificare i problemi e ad andare in profondità per scovarne le cause. La funzione “Signals and Syscalls Explorer” presente nel tool mostra le modalità di interazione di ciascun thread, processo e gerarchia di processi con il kernel Linux attra- verso le chiamate di sistema (syscall), nonché le modalità con cui i segnali vengono generati e trasmessi. La vista “Communication Flow” è stata ottimizzata per Linux e mostra graficamente le interazioni di un processo rispetto a descrittori di file, segnali e pipe (ovvero i canali di comuni- cazione tra processi). Il campo “Actor Tree” nella vista prin- cipale permette di osservare in che modo processi e thread siano generati nel tempo, comprese le relazioni padre/figlio nel codice. Billoo utilizza Tracealyzer con una distribuzione Linux basata su Yocto: per questo motivo è necessario realizza- re uno strato software personalizzato sopra al BSP (Board Supporto Package) per consentire l’impiego della libreria LTTng open source. Con Tracealyzer si ottengono molte informazioni relative all’esecuzione di undriver come parte del sistema Linux, kernel compreso. In questo modo è pos- L’uso della libreria LTTng open source in abbinamento con un tool di trace permette di individuare problem di prestazioni durante la valutazione di un kernel Linux custom sibile ottenere una visione più olistica del driver per garan- tire l’assenza di “colli di bottiglia” prestazionali e consenti- re l’identificazione delle cause di eventuali problemi.Il tool Tracealyzer può essere utilizzato per individuare problemi di prestazioni nel gestore IRQ (delle interruzioni) senza ri- correre alla famigerata printk. Il lavoro svolto da Billoo ha svelato la necessità, da parte del driver, di notificare al di- spositivo che l’interrupt sia stato gestito. Senza l’utilizzo di Tracealyzer, questa carenza non sarebbe stata individuata (o si sarebbe manifestata) solamente poco prima del rila- scio, quando le printk vengono rimosse. L’utilizzo del tool di Percepio evita la necessità di apportare modifiche al driver in una fase avanzata, il che comporterebbe ovviamente in

RkJQdWJsaXNoZXIy Mzg4NjYz