Intereting Posts
Как отменить диалоговое окно, например «Активность» при касании за пределами окна? Я получаю «OutOfMemoryError, брошенное при попытке выбросить OutOfMemoryError; Нет стека »на Android Android ListView с несколькими выбираемыми и настраиваемыми адаптерами Сохранение состояния активности Android с использованием состояния Save Instance Как перейти из Галереи в HorizontalScrollView & ViewPager? Имитировать низкую пропускную способность в android Держите карту в центре независимо от того, где вы зажимаете масштаб на андроиде Android: dither = "true" не смущает, что не так? Как мы можем отключить автоматическую яркость в Android? Одновременно применять одну анимацию к нескольким представлениям Как запустить CountDownTimer в службе на Android? Какой шаблон дизайна хорош для разработки приложений Android Как проверить, работает ли служба на Android? Android – Кнопки громкости, используемые в моем приложении Приложение Htmlunit для Android

Как сделать функцию ядра linux доступной для ftrace function_graph tracer?

Я хочу отслеживать функцию во время загрузки ядра с помощью function_graph ftrace function_graph чтобы понять, что она делает, но она недоступна в available_filter_functions .

Я попытался экспортировать его с EXPORT_SYMBOL() , предположив, что он сделает его доступным, но это не так.

У тебя есть решение ?

Для информации функции, которые я хочу отслеживать, – persistent_ram_init_ringbuffer и persistent_ram_early_init в ядре Android 3.4.

Я прочитал документацию, но ничего не нашел по этому поводу, и grep больше не помог …

благодаря

Solutions Collecting From Web of "Как сделать функцию ядра linux доступной для ftrace function_graph tracer?"

Проблема заключается в том, что эти функции аннотируются с __init и __devinit, которые черными перечислены функцией ftrace function tracer.

Зачем? Поскольку в качестве функций инициализации модуля (или функций инициализации ядра) они загружаются во время инициализации и удаляются при завершении инициализации. Каждая функция, которая отслеживает трассировку ftrace, хранится в специальной компактной таблице. В настоящее время нет способа сказать ftrace, что эти функции были удалены (освобождены) и что ftrace должен удалить их из своей таблицы. Если бы мы просто проигнорировали это, тогда, когда функция отслеживания включена, ftrace попытается изменить местоположения, которые больше не существуют и могут вызывать всевозможные проблемы (помните ошибку e1000e?).

Если вы действительно хотите их проследить, удалите эти аннотации. Затем они должны появиться в списке функций для отслеживания.

http://lwn.net/Articles/370423/

http://www.mjmwired.net/kernel/Documentation/trace/ftrace.txt

Эти ссылки могут помочь. Сначала это то, что я нашел в Google. Вторая – документация ftrace