免费注册 查看新帖 |

Chinaunix

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

[进程管理] 看了一堆RCU文章,没一个讲的很清楚,都是东抄西抄 [复制链接]

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-15 10:25 |只看该作者 |倒序浏览
本帖最后由 mordorwww 于 2014-03-15 10:35 编辑

看了一堆RCU文章,没一个讲的很清楚,都是东抄西抄

没有人能用粗俗的语言说清楚

rcu_read_lock  rcu_read_unlock ,没有参数, 到底保护的哪段临界区,保护的哪个数据结构?
如果有多个数据结构同时使用rcu,难道就都混在一起保护?

论坛徽章:
0
2 [报告]
发表于 2014-03-15 11:50 |只看该作者
RCU看起来比较反直觉,容易出错,少用为妙。

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
3 [报告]
发表于 2014-03-15 13:22 |只看该作者
Read:       reader并行读而不受writer影响
Copy:       writer复制数据,修改数据副本 (故而不影响reader)
Update1:  writer更新指针,此后的reader会看到新数据
Update2:  等引用旧数据的reader (pre-reader)完事之后,释放旧数据

最trick的地方在update2,怎么等待碍事的pre-reader结束以便释放旧数据。

见RCU作者写的介绍文章: http://lwn.net/Articles/262464/

论坛徽章:
0
4 [报告]
发表于 2014-03-15 18:31 |只看该作者
#define rcu_read_lock  preempt_disable() ..没有保护什么。只是禁止了内核抢占而已。。自己下个源码跟踪一下

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
5 [报告]
发表于 2014-03-15 20:34 |只看该作者
读锁目前的实现仅仅是关抢占,也就是为了让“所有核都经过一轮调度”这个条件不成力,也就达到锁的目的了(指针在这段时间不会交换,数据不会变化。这只是目前内核 RCU的实现,以后可能会改。

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
6 [报告]
发表于 2014-03-15 20:37 |只看该作者
好好一的段,都不知为什么说含不良内容,也不告诉我那个字不良。前半段是:内核目前RCU的实现,会在“所有核都经过一轮调度”进行RCU指针的交换。RCU交换是整CPU发起的,针对核上所有的RCU,因此读锁没有参数。

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
7 [报告]
发表于 2014-03-16 12:09 |只看该作者
黎明748 发表于 2014-03-15 18:31
#define rcu_read_lock  preempt_disable() ..没有保护什么。只是禁止了内核抢占而已。。自己下个源码 ...



问题是你啥也不做,这东西后面怎么释放

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
8 [报告]
发表于 2014-03-16 18:07 |只看该作者
"很复杂,不是一两句能讲清楚的"

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
9 [报告]
发表于 2014-03-16 18:36 |只看该作者
smalloc 发表于 2014-03-16 18:07
"很复杂,不是一两句能讲清楚的"

         

论坛徽章:
0
10 [报告]
发表于 2014-03-16 18:52 |只看该作者
有同感,那几个时间点不好懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP