Tarbal 4 March 1 Posted March 1 · Report post Вернее сделал удобный интерфейс для инструмента, который находится в ядре и имеет интерфейс в debugfs. Инструмент находится здесь: https://github.com/stepanovr/Linux_kernel_trace Пока только две функции. kprobe и измеритель количества и времени раборы функций. Вот такую информацию дает: Функции, содержащие "icmp" вызванные за 4 секунды по ядрам: core 0 Function Hit Time Avg s^2 -------- --- ---- --- --- icmp_rcv 35 232.480 us 6.642 us 42.858 us icmp_echo 1 39.519 us 39.519 us 0.000 us icmp_reply 1 38.112 us 38.112 us 0.000 us icmp_unreach 34 35.740 us 1.051 us 0.101 us icmp_push_reply 1 26.186 us 26.186 us 0.000 us icmp_glue_bits 1 1.833 us 1.833 us 0.000 us icmpv4_global_allow 1 1.000 us 1.000 us 0.000 us icmpv4_xrlim_allow 1 0.723 us 0.723 us 0.000 us icmp_out_count 1 0.722 us 0.722 us 0.000 us core 1 Function Hit Time Avg s^2 -------- --- ---- --- --- core 2 Function Hit Time Avg s^2 -------- --- ---- --- --- core 3 Function Hit Time Avg s^2 -------- А это kprobе за 4 секунды <idle>-0 [000] D.s2. 1814073.886416: icmp_out_p: (icmp_out_count+0x0/0xb0) <idle>-0 [000] b.s2. 1814073.886424: icmp_out_r: (__ip_make_skb+0x3dc/0x480 <- icmp_out_count) <idle>-0 [000] D.s2. 1814074.364198: icmp_out_p: (icmp_out_count+0x0/0xb0) <idle>-0 [000] b.s2. 1814074.364205: icmp_out_r: (__ip_make_skb+0x3dc/0x480 <- icmp_out_count) <idle>-0 [000] D.s2. 1814075.182794: icmp_out_p: (icmp_out_count+0x0/0xb0) <idle>-0 [000] b.s2. 1814075.182802: icmp_out_r: (__ip_make_skb+0x3dc/0x480 <- icmp_out_count) где icmp_out_p -- вход в функцию icmp_out_count, а icmp_out_r -- возврат из функции icmp_out_count. Опции позволяют включить backtrace, заголовок растолковывающий знагение D.s2., отфильтровать по активному в момент вызова функции PID или TID. Для теста надо пинговать испытуемый компьютер Иначе обозначенные функции появлеться не будут. Или пинговать другие функции. Системные вызовы, переключатель контекста: Например: schedule invoke_syscall schedule_idle __do_softirq rcu_note_context_switch Эти всегда вызываются. Quote Share this post Link to post Share on other sites More sharing options...
Tarbal 4 Wednesday at 07:08 PM Posted Wednesday at 07:08 PM · Report post В процессе добавления режима регистрации функций, которые вызываются внутри указанной (или указанных) в запросе. Пришлось многое переределывать. Quote Share this post Link to post Share on other sites More sharing options...