- 博客(5)
- 资源 (20)
- 收藏
- 关注
原创 DPDK指南--编写高效的代码
简介本章提供了使用DPDK开发高效代码的一些技巧。有关更多的信息,请参考Intel®64和IA-32架构优化参考手册,这是编写高效代码的宝贵参考资料。1、内存 本节描述在DPDK环境中开发应用程序时的一些关键内存注意事项。1.1内存拷贝:不要在数据平面中使用libc在DPDK中可以通过Linux*应用程序环境获得许多libc函数。这可以简化应用程序的移植和配置平面的开发。然而,这些功...
2019-11-18 16:43:20 3238
原创 Vpp源码---hash mhash结构学习
Hash 结构哈希表默认是支持动态扩容的,即当哈希表存放键值对大于3/4哈希桶的个数时,会2倍扩容。哈希冲突时,vector长度认为是没有限制的。hash结构内存分布及结构体描述哈希结构内存分布如下图所示:hash冲突时是如何解决的哈希冲突解决分2中情况(具体代码在lookup()函数中):1、key和vlaue都保存时hash结构体中log2_pair_size不等于 0是,存...
2019-11-18 09:45:20 2763
转载 内存屏障和编译屏障的理解
在vpp和dpdk的编码经常遇到有内存屏障和编译屏障的地方,使用内存屏障会远远降低执行性能,实测大概有10%左右的性能损耗,在多核竞争下更加劣化。下面文章有详细的介绍:个人认为内存屏障是解决的时候多CPU下问题,而编译屏障是为了防止cpu优化。https://www.cnblogs.com/straybirds/p/8856726.html...
2019-11-15 10:28:08 1184
原创 vpp--arc_feature学习以ipv4单播为例
1、feature arc及feature注册 vnet\ipIp4_forward.c feature arc及feature的main函数启动前的注册宏feature arc注册 VNET_FEATURE_ARC_INIT将注册feature arc,主要初始化feature类的名称、起始及结束node名字及arc_index的指针。会以链表形式挂接到全局变...
2019-11-12 09:38:38 2628
原创 VPP 创建自己的work线程
1 创建自己的核绑定线程1.1 线程启动流程以worker线程为例,介绍线程启动流程:1.1.1 线程注册:VLIB_REGISTER_THREAD线程注册宏注册到全局 vlib_thread_main_tvlib_thread_main->next链表上。typedef struct vlib_thread_registration_ { /* constructor g...
2019-11-07 13:05:29 3085 1
redis设计与实现 第二版 高清 带标签 PDF文档.zip
2019-07-22
linux VIM 配置文件
2014-12-02
live555项目Vs2010编译环境搭建及源码
2014-09-06
ubuntu apt-get 软件源局域网或公网设置
2014-06-25
易宝支付PHP代码
2013-09-07
XPath基础教程
2013-08-31
PJSIP 开源代码及文档
2013-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人