主线程其实就是 VPP 运行时中第一个调度线程,它是线程 0(vlib_worker_threads[0]),它的职责是:
-
完成所有 VPP 框架初始化工作;
-
加载并解析配置;
-
创建和初始化子系统(如 buffer pool、interface、plugin、graph、nodes);
-
启动 worker threads;
-
开始 graph node 调度循环。
🔧 初始化主线流程(以 vpp_main() 为起点)
0. 启动点 main()(vpp/vpp.c)
int main(int argc, char *argv[]) { return vpp_main(argc, argv); }
1. vpp_main() 入口(vpp/vpp.c)
📌 核心职责:
-
初始化 VPP 核心模块
-
调用 VLIB/VNET 各子系统初始化
-
启动插件
-
进入调度循环
int vpp_main(int argc, char *argv[]) { unformat_input_t input; clib_mem_init_thread_safe(0, 128 << 20); // 初始化 thread-safe 内存 vlib_main_init(&vm); // 初始化主 vlib_main_t 对象 vlib_plugin_early_init(); // 早期插件初始化(加载配置、注册信息) unformat_init_comm

博客内容待写,目前仅知标签为vpp,后续将围绕其展开信息技术相关内容。
最低0.47元/天 解锁文章
1290

被折叠的 条评论
为什么被折叠?



