Intereting Posts
Установить Исключительное устройство не найдено ANDROID Можем ли мы найти элемент по ID в appium Уничтожается ли действие, потому что изменение ориентации или закрытие приложения? Release-Debug Builds для Android-приложений Где help.py для обезьянника Android Фрагмент Android, возвращающийся без повторного воспроизведения / перезагрузки Фрагмент Как передать аргументы функции транзакции базы данных PhoneGap WebView loadDataWithBaseUrl – странная проблема в android 4.0.3 Android: качество изображений, измененных во время выполнения Android-эмулятор не имеет доступа к Интернету Как создать 7 "планшет (1280 * 800) Эмулятор разрешения экрана в Android? Seem не получает ресурс Facebook SDK при использовании Facebook Android SDK в IntelliJ IDEA 12 Android – загрузка нового APK с обновленными разрешениями для опубликованного приложения Использование Android getIdentifier () Как использовать стиль уведомления по умолчанию?

Как сделать функцию ядра 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