(dpdk f-stack) top-工具代码分析

Posted ygmdream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(dpdk f-stack) top-工具代码分析相关的知识,希望对你有一定的参考价值。

命令工具大体原理:

    nginx每个worker进程都有一个独立的FreeBSD栈,执行main_loop--process_msg_ring,此函数处理流程:

        1)从msg_ring[proc_id].ring[0]中出队列,取出msg;

        2)判断是FF_SYSCTL类型,然后执行ff_sysctl函数获取或设置FreeBSD内核的状态参数;

        3)最后再把结果msg入队列msg_ring[proc_id].ring[msg->msg_type]。

       top命令行工具和nginx worker之间即使用 msg_ring 通信;

 

不同类型消息的ring创建:

    worker的进程初始化函数 ngx_worker_process_init 中先执行 ff_mod_init, 完事执行 ff_run;

1)ff_mod_init-->ff_init-->ff_dpdk_init 函数中:

rte_eal_init:

//每个worker中针对 slave core 创建线程处理函数 eal_thread_loop, 线程处理函数中等待传来的处理函数

ret = pthread_create(&lcore_config[i].thread_id, NULL, eal_thread_loop, NULL);

init_msg_ring:

for(i = 0; i < nb_procs; ++i) 

/*(

以上是关于(dpdk f-stack) top-工具代码分析的主要内容,如果未能解决你的问题,请参考以下文章

(dpdk f-stack) VMware跑 f-stack

(dpdk f-stack)-实现L4代理功能

(dpdk f-stack)-实现L4代理功能

(dpdk f-stack)-dperf做压测

(dpdk f-stack)-dperf做压测

(dpdk f-stack)-提升性能(耗cpu函数定位)