Ftrace - Ftrace

ftrace
Разработчики)Стивен Ростедт и другие
изначальный выпуск9 октября 2008 г.; 12 лет назад (2008-10-09)
Операционная системаLinux
ТипРасширение ядра
ЛицензияGNU GPL версия 2[1]
Интернет сайтwww.kernel.org/ doc/Документация/след

ftrace (сокращенно от Функция Tracer) это отслеживание рамки для Ядро Linux. Хотя его первоначальное название, Function Tracer, произошло от способности ftrace записывать информацию, относящуюся к различным вызовы функций выполняется в то время как ядро работает, возможности трассировки ftrace охватывают гораздо более широкий спектр внутренних операций ядра.[2][3]

Благодаря различным плагинам трассировщика ftrace может быть нацелен на разные статические точки трассировки, Такие как планирование События, прерывает, ввод-вывод с отображением памяти, Состояние питания процессора переходы и операции, связанные с файловые системы и виртуализация. Также доступно динамическое отслеживание вызовов функций ядра, опционально ограниченное подмножеством функции используя шарики, и с возможностью генерировать графики звонков и предоставить куча отчеты об использовании. В то же время ftrace может использоваться для измерения различных задержки в ядре Linux, например, как долго прерываться или упреждение отключены.[2][4][5]:3–11,14,18

Ядро Linux с поддержкой ftrace создается путем включения CONFIG_FUNCTION_TRACER конфигурация ядра вариант. Все взаимодействие во время выполнения с ftrace осуществляется через читаемый и записываемый виртуальные файлы содержится в специально установленном debugfs файловая система; в результате ftrace не требует специализированных пространство пользователя коммунальные услуги в эксплуатации.[2][3][6] Однако существуют дополнительные утилиты пользовательского пространства, которые предоставляют более продвинутые функции для записи, анализа и визуализации данных; примеры таких утилит: трассировка-cmd и KernelShark.[2][5]:31–47[7][8]

Внутренне ftrace полагается на gcc с профилирование механизм для добавления машинные инструкции к составлен версии всех источник -уровневые функции ядра, которые перенаправляют выполнение функций на ftrace батуты и плагины трассировщика, которые выполняют собственно трассировку. Эти "входная точка "инструкции, созданные gcc, изменяются ftrace, когда ядро загружен, и изменился позже во время выполнения с помощью ftrace между NOP и актуальный прыгает к трамплинам трассировки, в зависимости от типов и параметров трассировки, настроенных во время выполнения.[9][10]

ftrace разработан Стивеном Ростедтом, и он был объединен с Основная линия ядра Linux в версии ядра 2.6.27, выпущенной 9 октября 2008 года.[11]

Смотрите также

  • DTrace - среда трассировки для устранения проблем ядра и приложений, первоначально разработанная для Solaris
  • ktrace - Утилита BSD Unix и Mac OS X, отслеживающая взаимодействия ядра и программы
  • ltrace - утилита отладки Linux, отображает вызовы, которые пользовательское приложение делает к разделяемым библиотекам
  • Strace - утилита отладки для Linux и некоторых других Unix-подобных систем, отслеживает системные вызовы, используемые программой, и все полученные сигналы
  • SystemTap - язык сценариев и утилита, используемые для инструментовки систем Linux

Рекомендации

  1. ^ "Исходный код ядра Linux: файл ядра / КОПИРОВАНИЕ". kernel.org. 13 марта 1994 г.. Получено 11 июня, 2016.
  2. ^ а б c d Джейк Эдж (13 марта 2009 г.). "Взглянем на ftrace". LWN.net. Получено 23 июля, 2014.
  3. ^ а б Стивен Ростедт (16 июня 2014 г.). «Документация ядра Linux: Documentation / trace / ftrace.txt». kernel.org. Получено 23 июля, 2014.
  4. ^ «Документация Red Hat Enterprise MRG 2, раздел 3.8. Использование утилиты ftrace для отслеживания задержек». Красная шляпа. 23 мая 2014 г.. Получено 24 июля, 2014.
  5. ^ а б Стивен Ростедт (18 октября 2010 г.). «Ftrace: трассировка ядра Linux» (PDF). linuxfoundation.org. Архивировано из оригинал (PDF) 8 марта 2013 г.. Получено 23 июля, 2014.
  6. ^ «Документация Red Hat Enterprise Linux 6, раздел 6.5. Ftrace». Красная шляпа. 14 марта 2014 г.. Получено 23 июля, 2014.
  7. ^ Стивен Ростедт (20 октября 2010 г.). "trace-cmd: интерфейс для Ftrace". LWN.net. Получено 19 января, 2015.
  8. ^ Стивен Ростедт (2 февраля 2011 г.). «Использование KernelShark для анализа планировщика в реальном времени». LWN.net. Получено 11 июня, 2016.
  9. ^ Стивен Ростедт (5 января 2015 г.). «Перехватчики ядра Ftrace: больше, чем просто трассировка» (PDF). linuxplumbersconf.org. стр. 6–12, 24, 34, 56–58. Получено 11 июня, 2016.
  10. ^ Тим Бёрд (1 ноября 2012 г.). «Измерение продолжительности функции с помощью Ftrace» (PDF). elinux.org. С. 5–6, 12–14. Получено 11 июня, 2016.
  11. ^ «Ядро Linux 2.6.27, раздел 1.7. Ftrace, поддержка sysprof». kernelnewbies.org. 9 октября 2008 г.. Получено 23 июля, 2014.

внешняя ссылка