ślad - ftrace
| Deweloper(zy) | Steven Rostedt i inni |
|---|---|
| Pierwsze wydanie | 9 października 2008 |
| System operacyjny | Linux |
| Rodzaj | Rozszerzenie jądra |
| Licencja | GNU GPL wersja 2 |
| Stronie internetowej | www |
ftrace ( Function Tracer ) to framework śledzący dla jądra Linuksa . Chociaż jego pierwotna nazwa, Function Tracer, pochodzi od zdolności ftrace do rejestrowania 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 , 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 oraz z możliwością generowania wykresów wywołań i dostarczania raportów użycia stosu . Jednocześnie ftrace może być używane do mierzenia różnych opóźnień w jądrze Linuksa, takich jak długość przerwań lub wywłaszczania .
Jądro systemu Linux z obsługą ftrace jest budowane przez włączenie opcji konfiguracji jądra CONFIG_FUNCTION_TRACER . Cała interakcja środowiska uruchomieniowego z ftrace odbywa się za pośrednictwem czytelnych 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 polega na gcc „s profilowania mechanizm do prepend instrukcji maszyny do skompilowanych wersji wszystkich źródłowych -level funkcji jądra, które przekierowują na wykonanie zadania na ftrace za trampoliny i wtyczek znacznikowe, które wykonują rzeczywiste śledzenie. Te instrukcje " punktu 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 – framework śledzący do rozwiązywania problemów z jądrem i aplikacjami, pierwotnie opracowany dla Solarisa
- ktrace – narzędzie BSD Unix i Mac OS X, które śledzi interakcje jądra z programem
- ltrace – narzędzie do debugowania Linuksa, wyświetla wywołania aplikacji w przestrzeni użytkownika do bibliotek 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 służące do instrumentacji systemów Linux
Bibliografia
Linki zewnętrzne
- Debugowanie jądra za pomocą Ftrace – część 1 i część 2 , LWN.net , grudzień 2009, Steven Rostedt
- Sekrety śledzenia funkcji Ftrace , LWN.net, 20 stycznia 2010, Steven Rostedt
- Ftrace: Ukryty włącznik światła , LWN.net, 13 sierpnia 2014, Brendan Gregg
- Źródło błędu korupcyjnego e1000e , LWN.net, 21 października 2008, Jonathan Corbet