免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7171 | 回复: 12
打印 上一主题 下一主题

Linux SMP 优化设计:控制面+数据面 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-31 22:33 |只看该作者 |倒序浏览
linux smp 应用极力避免的缺点:
1,频繁的调度,时钟中断造成的上下文切换
2,数据的内核用户空间拷贝
3,异常的发生,tlb缺页异常
4,进程迁移造成cache等性能波动

如何设计优化避免这些缺点呢?
  1,数据面核关闭所有中断,除了mailbox中断(控制面通知数据面用)。只跑一个内核线程。 关闭时钟后并不会带来系统性的错误。但要调整rcu lock。
  2,数据面核值跑在内核态线程,不用担心内存拷贝问题
  3,内核中使用非映射段(mips:kseg0),其他体系结构内核对应自己的设计。可以避免tlb缺页异常。
  4,线程绑定,控制面线程都cpu_allows 设为控制面的核,init,kthread线程都只和控制面核亲和。 数据面,跑一个实时线程即可。新增控制面通知数据面接口。其他修改,此处省略。

实际优化设计运行情况: 在cavium mips 多核上,成功实现设计,性能和cavium极力推荐的SE(一个循环)一样,因为并无区别。但SMP优势又很明显: 数据面核可以有效的利用现有linux内核的丰富代码,方便的核间共享数据(同一地址空间),良好的可移植性(linux代码风格,无需另搞一套)。

http://my.chinaunix.net/space.ph ... =blog&id=341685

论坛徽章:
0
2 [报告]
发表于 2011-06-01 11:22 |只看该作者
这段时间也在考虑这个问题(网络转发层面)。
想法是用一个CPU处理通用功能,其它CPU尽量处理软中断。目前这种架构,我觉得SMP下没有必要每个CPU要进行一大堆的调度工作。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2011-06-01 17:09 |只看该作者
回复 2# 独孤九贱
个人觉得九贱兄的方法不错

论坛徽章:
0
4 [报告]
发表于 2011-06-03 15:42 |只看该作者
本人觉得看你性能考虑程度,要是转发是关键那么,我感觉就是要用SE模式
SMP过多的系统开销是满足不了性能的。

本人只用过SE的,因为真的不用考虑系统开销,关键是考虑锁,避免锁的设计能拉升多核的强劲性能。

LZ能否多阐述一下SMP下的实现呢,大家学习一下

论坛徽章:
0
5 [报告]
发表于 2011-06-03 22:28 |只看该作者
关闭时钟中断,和其他中断后,就没有进程调度了,兄台。 也就是一直轮询,和se没两样。但可以用的代码全面,se里面没有协议栈,其他都没有,可移植性也差,se内存管理也差。

论坛徽章:
0
6 [报告]
发表于 2011-06-11 02:25 |只看该作者
LZ  是恒杨的陈鹏?

论坛徽章:
0
7 [报告]
发表于 2011-06-11 09:06 |只看该作者
不是。 我是吐蕃

论坛徽章:
0
8 [报告]
发表于 2011-06-11 10:36 |只看该作者
只是发现你们搞的思路和平台惊人的相似

论坛徽章:
0
9 [报告]
发表于 2011-06-11 15:44 |只看该作者
恒杨 是什么公司 ?

论坛徽章:
0
10 [报告]
发表于 2011-06-13 11:37 |只看该作者
1,数据面核关闭所有中断,除了mailbox中断(控制面通知数据面用)。只跑一个内核线程。 关闭时钟后并不会带来系统性的错误。但要调整rcu lock。
对rcu_lock的调整是否会影响控制平面核的处理呢?
3,内核中使用非映射段(mips:kseg0),其他体系结构内核对应自己的设计。可以避免tlb缺页异常。
这个是针对数据平面和控制平面共享的数据而言吧!

此外,当前的这种优化方式应该也和Cavium的SE方式优化相同了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP