traccia - ftrace
| Sviluppatore/i | Steven Rotedt e altri |
|---|---|
| Versione iniziale | 9 ottobre 2008 |
| Sistema operativo | Linux |
| Tipo | Estensione del kernel |
| Licenza | GNU GPL versione 2 |
| Sito web | www |
ftrace ( Function Tracer ) è un framework di tracciamento per il kernel Linux . Sebbene il suo nome originale, Function Tracer, derivi dalla capacità di ftrace di registrare informazioni relative a varie chiamate di funzione eseguite mentre il kernel è in esecuzione, le capacità di tracciamento di ftrace coprono una gamma molto più ampia di operazioni interne del kernel.
Dettagli
Con i suoi vari plug-in di traccia, ftrace può essere mirato a diversi punti di traccia statici , come eventi di pianificazione , interruzioni , I/O mappati in memoria , transizioni di stato di alimentazione della CPU e operazioni relative a file system e virtualizzazione . Inoltre, è disponibile il monitoraggio dinamico delle chiamate alle funzioni del kernel, opzionalmente limitabile a un sottoinsieme di funzioni utilizzando globs e con la possibilità di generare grafici di chiamata e fornire report sull'utilizzo dello stack . Allo stesso tempo, ftrace può essere utilizzato per misurare varie latenze all'interno del kernel Linux, ad esempio per quanto tempo gli interrupt o la prelazione sono disabilitati.
Un kernel Linux abilitato per ftrace viene creato abilitando l' opzione di configurazione del kernel CONFIG_FUNCTION_TRACER . L'intera interazione runtime con ftrace viene eseguita tramite file virtuali leggibili e scrivibili contenuti in un file system debugfs appositamente montato ; di conseguenza, ftrace non richiede utility specializzate in spazio utente per funzionare. Tuttavia, esistono ulteriori utilità dello spazio utente che forniscono funzionalità più avanzate per la registrazione, l'analisi e la visualizzazione dei dati; esempi di tali utilità sono trace-cmd e KernelShark .
Internamente, ftrace si affida al gcc 's profilazione meccanismo per anteporre istruzioni macchina alle compilate versioni di tutte le sorgenti funzioni kernel -Level, che reindirizzano l'esecuzione di funzioni al di ftrace trampolini e plugin traccianti che eseguono il tracciato vero e proprio. Questi " punto di ingresso " istruzioni create da gcc sono alterati dal ftrace quando il kernel è avviato , e varia poi in fase di runtime ftrace tra PON e reali salti ai trampolini di tracciamento, a seconda dei tipi di traccia e opzioni configurate in fase di esecuzione.
ftrace è sviluppato principalmente da Steven Rostedt, ed è stato unito alla linea principale del kernel Linux nella versione del kernel 2.6.27, che è stata rilasciata il 9 ottobre 2008.
Guarda anche
- DTrace : un framework di tracciamento per la risoluzione dei problemi del kernel e delle applicazioni, originariamente sviluppato per Solaris
- ktrace – un'utilità BSD Unix e Mac OS X che traccia le interazioni kernel-programma
- ltrace – un'utilità di debug di Linux, visualizza le chiamate che un'applicazione userland fa alle librerie condivise
- strace - un'utilità di debug per Linux e alcuni altri sistemi simili a Unix, monitora le chiamate di sistema utilizzate da un programma e tutti i segnali ricevuti
- SystemTap : un linguaggio di scripting e un'utilità utilizzati per la strumentazione dei sistemi Linux
Riferimenti
link esterno
- Debug del kernel utilizzando Ftrace – parte 1 e parte 2 , LWN.net , dicembre 2009, di Steven Rostedt
- Secrets of the Ftrace function tracer , LWN.net, 20 gennaio 2010, di Steven Rostedt
- Ftrace: L'interruttore della luce nascosto , LWN.net, 13 agosto 2014, di Brendan Gregg
- La fonte del bug di corruzione e1000e , LWN.net, 21 ottobre 2008, di Jonathan Corbet