免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2462 | 回复: 4

[内核同步] 列举支持smp的 linux 竞争情形 [复制链接]

论坛徽章:
0
发表于 2012-06-27 17:24 |显示全部楼层
本帖最后由 titer1 于 2012-06-27 17:24 编辑

A:首先说明,最简单的原则:保护弱者。

order
情形
方法
1
单cpu下,进程与中断 竞争
关中断
2
单cpu下,buttom_half 与中断(此详细为上半部) 竞争
关中断
3
一个进程中,多个线程竞争
信号量
4
进程正在执行, 发生内核抢占 与其竞争资源
暂时禁止内核抢占
分界线
--
--
5
多cpu下,进程之间竞争
自旋锁(spinlock)
6
多cpu下,中断(此详细为上半部)之间竞争
自旋锁(spinlock)
7
多cpu下,多个tasklet之间 竞争
--(由于tasklet内部已实现有序,不必加锁)
8
多cpu下,多个软中断(softIrq) 之间竞争
禁中断

-
-

以上总结至此,大家有好的意见尽管提哈

评分

参与人数 1可用积分 +6 收起 理由
Godbach + 6 感谢分享

查看全部评分

论坛徽章:
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
发表于 2012-06-28 14:31 |显示全部楼层
回复 1# titer1
感谢 LZ 分享。


   

论坛徽章:
0
发表于 2012-06-28 21:18 |显示全部楼层

多cpu下,多个tasklet之间的竞争,如果是同一个tasklet,不需要加锁,如果是不同的tasklet,需要使用自旋锁

多cpu下,多个软中断之间的竞争,不管是不是同一个软中断,都需要需要使用自旋锁,禁止中断貌似不能起作用

论坛徽章:
0
发表于 2012-06-29 15:25 |显示全部楼层
luoyan_xy 发表于 2012-06-28 21:18
多cpu下,多个软中断之间的竞争,不管是不是同一个软中断,都需要需要使用自旋锁,禁止中断貌似不能起作用


你说的软中断之间的竞争,使用自旋锁,为什么啊?

顺便问个问题,禁止中断后,是不是对应的软中断(buttom_half..)就不能发生了?

论坛徽章:
0
发表于 2012-06-29 21:52 |显示全部楼层
回复 4# titer1


    同一个软中断能在不同的CPU上同时执行,所以如果有共享数据的修改时就需要加锁

    禁止中断是可以禁止软中断,不过如果比较明确的是需要禁止软中断,可以直接关掉bh
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP