免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: mordorwww

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

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
发表于 2014-03-18 11:15 |显示全部楼层
回复 18# 帅绝人寰

Eliminating rwlocks and IRQF_DISABLED
http://lwn.net/Articles/364583/

Rwlocks in Linux are inherently unfair in that readers can stall writers for an arbitrary period of time. New read locks are allowed even if a writer is waiting, so a steady stream of readers can block a writer indefinitely.


rcu不会阻塞写者;读者的加锁开销相对而言也更小,不需要在自己的数据结构内添加个rwlock,大小方面也有优势。

另外,感觉是新是旧有得时候其实并不重要啊!关键在于一致性!可以参见内存屏障的作用!

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
发表于 2014-03-18 11:26 |显示全部楼层
回复 20# tempname2

可以参见 lglock。也是这种 per-cpu队列 spinlock。

VFS scalability patches in 2.6.36

http://lwn.net/Articles/401738/
   

论坛徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龙
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
发表于 2014-03-18 17:02 |显示全部楼层
RCU是非阻塞同步,读写锁是阻塞同步。可以想象spinlock和mutex。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:17
发表于 2014-03-18 17:38 |显示全部楼层
liuiang 发表于 2014-03-18 17:02
RCU是非阻塞同步,读写锁是阻塞同步。可以想象spinlock和mutex。



rw 有的是spinlock变的, 有的是semaphore变的

非阻塞同步什么意思? rcu read lock时可以睡眠?  这个mutex也行啊

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
发表于 2014-03-18 17:51 |显示全部楼层
回复 24# 帅绝人寰

rcu read不可以阻塞,需要阻塞可以用 srcu!

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
发表于 2014-03-18 19:03 |显示全部楼层
本帖最后由 linuxfellow 于 2014-03-18 19:04 编辑

回复 3# tempname2
tempname2先生对linux研究真是入木三分。rcu用的机会多吗?一般在什么场合用。我主要写驱动,用的多是mutex_lock


   

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
发表于 2014-03-18 19:39 |显示全部楼层
回复 22# asuka2001


哦,说的就是这个。

Nick Piggin这些patch……真是起惨痛的过去。那时我工作刚满一年,终于得到一份内核开发的职位,接到的第一个任务是:改善VFS的scalability。我对此毫无头绪,急得焦头烂额,唯一能做的就是看看VFS代码,研究一下Nick Piggin前几年的工作。过了半年,什么也没搞出来。

然后我就不做kernel了。

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
发表于 2014-03-18 19:42 |显示全部楼层
linuxfellow 发表于 2014-03-18 19:03
回复 3# tempname2
tempname2先生对linux研究真是入木三分。rcu用的机会多吗?一般在什么场合用。我主要写 ...


我连写驱动的机会都没有……

RCU我也没有完全搞懂。不过驱动本来就不必考虑SMP效率什么的,古典同步手段应该够用了。

论坛徽章:
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
发表于 2014-03-18 20:50 |显示全部楼层
http://www.ibm.com/developerworks/cn/linux/l-rcu/
这篇讲得蛮好的,今天没机会讨论了.改天.

论坛徽章:
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
发表于 2014-03-18 21:38 |显示全部楼层
http://www.ibm.com/developerworks/cn/linux/l-rcu/
这篇讲得蛮好的,今天没机会讨论了.改天.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP