EMB_82

EMBEDDED 82 • NOVEMBRE • 2021 54 SOFTWARE | TRACE TOOLS Questa vista di trace verticale visualizza il flusso di eventi utilizzando una sequenza temporale verticale (partendo dall’alto e proseguendo verso il basso). Ciascuna colonna rappresenta un singolo contesto di esecuzione nel sistema – solitamente un task o un gestore di interrupt – e i rettan- goli interni alla colonna mostrano quando un particolare task era in esecuzione. Le etichette orizzontali (a sinistra) indicano gli eventi software registrati. Il grafico è completamente interattivo per cui ese- guendo lo zoom è possibile visualizzare ulteriori dettagli ritardi e costi signi- ficativi. Il ricorso a Tracealyzer, inol- tre, ha permesso di comprendere perché l’idea di in- vocare la printk in un gestore di IRQ non risulti partico- larmente brillante. Tracealyzer per Li- nux può anche es- sere utilizzato per avanzare ipotesi su come l’impostazio- ne dell’affinità del- la CPU di un pro- cesso potrebbe in prospettiva influen- zare le sue presta- zioni. L’analisi del- le interazioni tra i differenti elementi di esecuzione in tutte le condizioni – normali e di estre- mo carico – mostra l’algoritmo “best ef- fort” del kernel Li- nux. Ciò ha messo in luce aspetti dello schedulatore Linux e del codebase iperf su cui compiere ul- teriori analisi. Prestazioni in spazio utente L’utilizzo del tool di Percepio risulta ancora più efficace nel- la valutazione delle prestazioni in spazio utente. La mag- gior parte degli sviluppatori di software embedded imple- menteranno le applicazioni in spazio utente sul loro sistema Linux e l’abbinamento fra Tracealyzer e i punti di traccia- mento (tracepoint) di LTTng rappresenta unmetodo estre- mamente efficiente per determinare le prestazioni di un’ap- plicazione, identificare qualsiasi comportamento anomalo e ottenere statiche di temporizzazione molto accurate. Tra- cealyzer può anche essere impiegato per individuare e ri- solvere altri problemi di temporizzazione, contribuendo in tal modo a migliorare ulteriormente le prestazioni dell’ap- plicazione. L’uso congiunto di Tracealyzer e della libreria di LTTng risulta anche utile per comprendere l’impatto sulle prestazioni delle opzioni di compilazione. Ciò consente agli sviluppatori di rendersi rapidamente conto dell’influenza delle opzioni di compilazione sulle prestazioni di applica- zioni in spazio utente che eseguono operazioni in virgola mobile. Un’analisi di questo tipo viene solitamente condotta quando, una volta completata l’applicazione, le prestazio- ni di quest’ultima non siano quelle previste: si tratta, com’è facilmente intuibile, di un’operazione molto onerosa in ter- mini di tempo. L’utilizzo di questo strumento nel corso dello sviluppo per verificare le tempistiche di esecuzione dell’ap- plicazione consente di scongiurare cali prestazionali. Considerazione conclusive Tracealyzer è un tool molto potente in mano a uno svilup- patore che utilizza Linux embedded ma, come qualsiasi sistema embedded, deve essere ottimizzato in funzione del particolare hardware utilizzato nel progetto. Billoo ha utilizzato questo tool di Percepio in un gran numero di progetti per individuare bug occulti e ottimizzare quindi le prestazioni dei sistemi embedded. Le funzionalità di Tracealyzer (come ad esempio le viste grafiche per l’analisi “top-down”, che includono le interazioni tra i processi, i fork, l’utilizzo di CPU, di RAM, degli I/O, dei file, le mac- chine a stati e altre metriche dell’utente), generano rap- presentazioni del trace potenti e intuitive, scalabili fino a grandi dimensioni, pur preservando chiarezza e rapidità di risposta dell’interfaccia. Il tool può essere adattato ai casi d’uso dell’utente personalizzando l’interpretazione degli eventi, in modo che i set di dati dell’utente (come in- tervalli e macchine a stati), possono essere visualizzati me- diante viste configurabili. L’uso della libreria open-source LTTng insieme alle funzionalità aggiunte alla più recente versione di Tracealyzer introduce numerosi strumenti per esplorare un sistema basato su Linux embedded, a parti- re da driver e gestore degli interrupt fino alle applicazioni in spazio utente e alle opzioni di compilazione. L’utilizzo combinato di questi strumenti durante lo sviluppo non solo consente ai progettisti di godere di una più ampia pa- noramica sul progetto, ma li aiuta ad individuare eventuali problemi nelle fasi iniziali. Dal punto di vista di uno svilup- patore esperto, ciò consente di evitare eventuali bug occul- ti, risparmiando tempo e costi nel proseguo del progetto. Il primo blog dal titolo: Utilizzo di TraceAlyzer con una di- stribuzione Linux basata su Yocto è disponibile all’indiriz- zo; https://elettronica-plus.it/utilizzo-di-tracealyzer-con-u- na-distribuzione-linux-basata-su-yocto_114984/

RkJQdWJsaXNoZXIy Mzg4NjYz