ślad

ślad
Deweloperzy Stevena Rostedta i innych
Pierwsze wydanie 9 października 2008 ; 14 lat temu ( 09.10.2008 )
System operacyjny Linuks
Typ Rozszerzenie jądra
Licencja GNU GPL wersja 2
Strona internetowa www.kernel.org/doc/html/latest/trace/index.html _ _ _ _ _ _ _ _

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