ślad - ftrace

ftrace
Deweloper(zy) Steven Rostedt i inni
Pierwsze wydanie 9 października 2008 ; 12 lat temu ( 2008-10-09 )
System operacyjny Linux
Rodzaj Rozszerzenie jądra
Licencja GNU GPL wersja 2
Stronie internetowej www .kernel .org /doc /Dokumentacja /trace

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