Я пытаюсь подключить некоторые функции ядра, такие как kmem_cache_alloc в Arm64 linux5.7 (эта версия имеет CONFIG_DYNAMIC_FTRACE_WITH_REGS в Arm64). Но я всегда вхожу в бесконечный цикл при вызове функции.
Поэтому я упрощаю код и пишу демо-версию для перехвата _do_fork ниже, на x86-64 код в порядке, и та часть, которая должен прекратить цикл, работает нормально. Небольшая деталь: ftrace_set_filter_ip не работает в Arm64, но ftrace_set_filter работает хорошо.
Я пытаюсь подключить некоторые функции ядра, такие как kmem_cache_alloc в Arm64 linux5.7 (эта версия имеет CONFIG_DYNAMIC_FTRACE_WITH_REGS в Arm64). Но я всегда вхожу в бесконечный цикл при вызове функции. Поэтому я упрощаю код и пишу демо-версию для перехвата _do_fork ниже, на x86-64 код в порядке, и та часть, которая должен прекратить цикл, работает нормально. Небольшая деталь: ftrace_set_filter_ip не работает в Arm64, но ftrace_set_filter работает хорошо. [code]asmlinkage long (*original_do_fork)(unsigned long clone_flags,...);
asmlinkage long hooked_do_fork(unsigned long clone_flags, unsigned long stack_start, unsigned long stack_size, int __user *parent_tidptr, int __user *child_tidptr, unsigned long tls) { printk("hooked_do_fork called!\n"); return original_do_fork(clone_flags, stack_start, stack_size, parent_tidptr, child_tidptr, tls); }
Моя версия ядра — 6.8
и функция обратного вызова ftrace выглядит так:
(Мы устанавливаем USE_FENTRY_OFFSET равным нулю, предотвращаем рекурсивную работу ftrace, проверяя адрес)
static void notrace ftrace_callback_handler(unsigned long ip, unsigned...
Я работаю над сопоставлением журналов доступа к памяти, созданных инструментом Pin, с журналами ошибок страниц из ftrace. Оба журнала содержат временные метки и адреса, но я сталкиваюсь с проблемами при попытке сопоставить обращения к памяти с...
Недавно я измеряю время прерывания устройства Virtio. Я использовал TRACE -CMD -P FUNCTION_GRAPH -G VM_INTERRUPT, чтобы отследить этот ISR. Насколько я понимаю, данные трассировки должны включать только точки входа и выхода VM_Interrupt, а также...
У меня есть несколько вопросов относительно наилучшего способа настройки архитектуры и лучших инструментов, которые я могу использовать в Python для достижения своей цели.
По сути, это будет конечная точка REST API ( созданный с помощью библиотеки...