OpenFastPath 學習3(udpecho 執行緒組成)
udpecho執行起來之後,分析一下,它由那些執行緒組成,如下:
(gdb) i thread
發現有11個執行緒,每個執行緒探查一下。
(gdb)thread 1
可見該執行緒為主執行緒,其main函式所在。
(gdb)thread 2
main--->odp_init_global---->odp_init_dpdk--->rte_eal_init--->rte_eal_intr_init---->eal_intr_thread_main,
該執行緒是一箇中斷處理執行緒,由DPDK啟動。
(gdb)thread 3/4
main-->ofp_init_global--->ofp_ifnet_create--->odph_odpthreads_create--->_odph_thread_run_start_routine--->sp_rx_thread + sp_tx_thread
SP=SLOW PATH 執行緒3和執行緒4與虛擬網絡卡進行通訊。rx和tx各一個執行緒。
(gdb)thread 5
netlink執行緒,與核心協議棧進行通訊。
thread 6/7/8/9/10/11/
schedule_loop執行緒,收發包執行緒。
thread 12
cli_server 命令服務的執行緒。
thread 13
使用者自己的執行緒 udp_server.c中的執行緒