На моем устройстве отсутствуют доступные типы трассировщиков ftrace - PullRequest
0 голосов
/ 31 января 2019

Я разрабатываю оболочку user-land tracer для некоторых исследований, и мне нужно специально изучить переключатели контекста в моем ядре.Исходя из этой статьи LWN (раздел в разделе "sched_switch" примерно на треть пути вниз) я заметил некоторые различия между выводом моей системы (устройство Android с ядром 3.10.9) и выводом статьи (написано для ядра 2.6).Моя самая большая проблема - отсутствие следующего состояния задачи.Чтобы точно показать, вывод статьи имеет формат

sleep-4055  [01]   240.132371:   4055:120:S ==>  3997:120:R

(фокус на R в конце, чтобы указать состояние следующего состояния) Мой вывод:

GLThread 292-7361  [000] d..3  9421.164945: sched_switch: prev_comm=GLThread 292 prev_pid=7361 prev_prio=120 prev_state=R ==> next_comm=surfaceflinger next_pid=3036 next_prio=98

Теперь ресурсыв интернете все немного перемешано, и поэтому я надеюсь на быстрое разъяснение.

В статье трассировка настроена на

echo sched_switch > /debug/tracing/current_tracer

Теперь в моей системе этого нет в качестве доступного трассировщика

odroidxu3: / d /tracing # cat available_tracers
function_graph wakeup_rt функция пробуждения nop

, но я могу отследить событие sched_switch через следующие интерфейсы

$ cat available_events |grep sched_switch
sched: sched_switch

$ ls events / sched / |grep switch
sched_switch

Что заставляет меня спросить, не хватает ли моему ядру какой-либо функциональности, которая требует исправлений (аналогично этому этому посту) или интерфейс ftrace перемещен sched_switchот доступного трассировщика к событию ftrace?

Если требуется исправление, где можно найти скомпилированный список / текущий список исправлений?

Приветствия

...