ślad
Deweloperzy | Stevena Rostedta i innych |
---|---|
Pierwsze wydanie | 9 października 2008 |
System operacyjny | Linuks |
Typ | Rozszerzenie jądra |
Licencja | GNU GPL wersja 2 |
Strona internetowa |
ftrace ( Function Tracer ) to platforma śledzenia dla jądra Linuksa . Chociaż jego pierwotna nazwa, Function Tracer, pochodziła od zdolności ftrace do zapisywania informacji związanych z różnymi wywołaniami funkcji wykonywanych podczas działania jądra , możliwości śledzenia ftrace obejmują znacznie szerszy zakres wewnętrznych operacji jądra.
Detale
Dzięki różnym wtyczkom śledzącym ftrace może być ukierunkowany na różne statyczne punkty śledzenia , takie jak planowanie zdarzeń, przerwania , operacje we/wy mapowane w pamięci , zmiany stanu zasilania procesora oraz operacje związane z systemami plików i wirtualizacją . Dostępne jest również dynamiczne śledzenie wywołań funkcji jądra, opcjonalnie ograniczone do podzbioru funkcji za pomocą globów , z możliwością generowania wykresów wywołań i dostarczania raportów użycia stosu . Jednocześnie ftrace może być używany do mierzenia różnych opóźnień w jądrze Linuksa, takich jak czas wyłączenia przerwań lub wywłaszczania .
Jądro Linuksa z obsługą ftrace jest budowane poprzez włączenie opcji konfiguracji jądra CONFIG_FUNCTION_TRACER . Cała interakcja środowiska wykonawczego z ftrace odbywa się za pośrednictwem odczytywalnych i zapisywalnych plików wirtualnych zawartych w specjalnie zamontowanym systemie plików debugfs ; w rezultacie ftrace nie wymaga do działania żadnych specjalistycznych narzędzi przestrzeni użytkownika . Istnieją jednak dodatkowe narzędzia przestrzeni użytkownika, które zapewniają bardziej zaawansowane funkcje rejestrowania, analizy i wizualizacji danych; przykładami takich narzędzi są trace-cmd i KernelShark .
Wewnętrznie ftrace opiera się na mechanizmie profilowania gcc , aby dołączać instrukcje maszynowe do skompilowanych wersji wszystkich funkcji jądra na poziomie źródłowym , które przekierowują wykonywanie funkcji do trampolin ftrace i wtyczek śledzących, które wykonują rzeczywiste śledzenie. Te instrukcje „ punktów wejścia ” tworzone przez gcc są zmieniane przez ftrace podczas uruchamiania jądra i zmieniane później w czasie wykonywania przez ftrace między NOP a rzeczywistymi skokami do trampolin śledzących, w zależności od typów śledzenia i opcji skonfigurowanych w czasie wykonywania.
ftrace jest rozwijany głównie przez Stevena Rostedta i został włączony do głównej linii jądra Linuksa w wersji jądra 2.6.27, która została wydana 9 października 2008 roku.
Zobacz też
- DTrace – platforma śledzenia do rozwiązywania problemów z jądrem i aplikacjami, pierwotnie opracowana dla systemu Solaris
- ktrace - narzędzie BSD Unix i Mac OS X, które śledzi interakcje jądro-program
- ltrace – narzędzie do debugowania Linuksa, wyświetla wywołania, które aplikacja użytkownika wykonuje w bibliotekach współdzielonych
- strace - narzędzie do debugowania dla Linuksa i niektórych innych systemów uniksopodobnych, monitoruje wywołania systemowe używane przez program i wszystkie odbierane sygnały
- SystemTap – język skryptowy i narzędzie używane do instrumentacji systemów Linux
Linki zewnętrzne
- Debugowanie jądra za pomocą Ftrace – część 1 i część 2 , LWN.net , grudzień 2009, autor: Steven Rostedt
- Sekrety śledzenia funkcji Ftrace , LWN.net, 20 stycznia 2010 r., autor: Steven Rostedt
- Ftrace: ukryty włącznik światła , LWN.net, 13 sierpnia 2014 r., autor: Brendan Gregg
- Źródło błędu korupcji e1000e , LWN.net, 21 października 2008 r., autor: Jonathan Corbet