免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 塑料袋
打印 上一主题 下一主题

看到论坛前辈们用一帖就勾引出来那么多牛人,我也想试试 [复制链接]

论坛徽章:
0
521 [报告]
发表于 2006-12-22 18:58 |只看该作者
楼主有些偏执,但我从楼主和别人交谈的过程中一窥楼主真正的能力。

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
522 [报告]
发表于 2006-12-22 19:46 |只看该作者
原帖由 secworld 于 2006-12-22 17:55 发表


那个注释就是为什么不会产生并发的说明。
还要我说多清楚啊?你!
你真是一个只见语句不见语意的Linux大陆第一高手,佩服~


妈的我也糊涂了,这个和并发不并发有什么关系???

难到这里能作为你前边帖子中++以后,再--之前,inode状态不会做改变的证明?

还是又扯了个不搭边的另一个问题?



要么我是SB,我认输;
要么你打总一次性把所有想向我发难的问题都说出来,我一次性该会的会,不会的我滚蛋。

别在这挤牙膏

[ 本帖最后由 塑料袋 于 2006-12-22 19:55 编辑 ]

论坛徽章:
0
523 [报告]
发表于 2006-12-22 19:58 |只看该作者
原帖由 langue 于 2006-12-22 18:58 发表
楼主有些偏执,但我从楼主和别人交谈的过程中一窥楼主真正的能力。

能否透露一下性别?
看你性格像女的(如果不是那就sorry哦),但是女的没有这么厉害阿

论坛徽章:
0
524 [报告]
发表于 2006-12-22 23:12 |只看该作者
原帖由 塑料袋 于 2006-12-22 19:46 发表


妈的我也糊涂了,这个和并发不并发有什么关系???

难到这里能作为你前边帖子中++以后,再--之前,inode状态不会做改变的证明?

还是又扯了个不搭边的另一个问题?



要么我是SB,我认输;
要么 ...


妈的我也糊涂了,这个和并发不并发有什么关系???
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
别拿你的无知当个性了,把你这句话定格一下,以备后人“敬仰”我们的牛人塑料袋一番(你竟然看不出这个和并发不并发之间的关系??引你在一楼贴子中的一句话“也真叫我瀑布寒~”),我现在想真是我当初找错对手了,以为是个可以交手的料,没想到连个蒌西瓜都不如,算我走眼吧,不是我挤牙膏,而是我感觉每回我说的都恰到好处,是你不能体会罢了,如果你真的3天可以精通汇编,我以为你的悟性是够的。但我错了...
程序进入__syn_one()函数后,先要设置LOCK位,然后清除掉DIRTY位,这两个语句很简单,但Linus Torvalds还是在这里写了注释,就是叫阅读的人注意。在这之后才会spin_unlock(&inode_lock)锁,也就是此时才会给位于iput()函数中的write_inode_now()一次执行的间隙,当write_inode_now()执行时在调用sync_one()函数前要判断是否含有DIRTY位,因为该位已被__syn_one()函数清掉,所以这颗CPU不会和上一颗CPU同时sync同一个inode,这样利用inode_lock锁和dirty位就互斥了并发的可能。CPU-A在iput某一inode结点count为零时,CPU-B在sync这个inode结点,提高了两颗CPU的并发度。然后当iput()执行到clear_inode()时,如果CPU-B没有sync完inode结点,则会在i_lock队列中等待本次同步事件的完成。iput()函数其余情况下因为有MS_ACTIVE位的存在而提前结束iput()函数。ms_active位在什么时候被清除掉,你在285楼发贴后经过一段时间已经找到了,就不用我再费话了吧。
我说了这么多,我想你一定还是不懂,但我已经尽力了。看你的修行了。

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
525 [报告]
发表于 2006-12-22 23:22 |只看该作者
我只想知道,这些代码是另起炉灶的又一个问题?
还是和你说的++以后,再--之前,inode状态不会做改变的证明?

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
526 [报告]
发表于 2006-12-22 23:34 |只看该作者
__sync_one(....){
        ......
        /* Set I_LOCK, reset I_DIRTY */  <-------Linus Torvalds写于1997年的注释,看上去貌似很多余吧?
        dirty = inode->i_state & I_DIRTY;
        inode->i_state |= I_LOCK; <-------就算是学过C语言的猪,也知道这两句的表面意思,但塑料袋却不懂
        inode->i_state &= ~I_DIRTY; <-------Linus Torvalds先生的注释就是给他这种连猪都不如的人写的
        spin_unlock(&inode_lock);
        ......
}


这些什么也不能说明,执行完这三条后,inode的状态,引用计数等,该怎么变还怎么变,无法预测。

只是因为I_Lock的设置,致使inode暂时无法改变它所在的lru链而已

所以__sync_one中,后来是refile_inode,而不是简单的把inode记做clean

我不知道你想说明什么?
我只知道我惹不起你,如果以后我不再回这个帖,就是我怕了你,认输了。

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
527 [报告]
发表于 2006-12-22 23:36 |只看该作者
原帖由 secworld 于 2006-12-22 23:12 发表

利用inode_lock锁和dirty位就互斥了并发的可能


我告诉你,整个kernel,不管哪个结构,没有一个地方用到dirty位来互斥并发可能。

论坛徽章:
0
528 [报告]
发表于 2006-12-22 23:48 |只看该作者
原帖由 塑料袋 于 2006-12-22 23:36 发表


我告诉你,整个kernel,不管哪个结构,没有一个地方用到dirty位来互斥并发可能。


这句话说的也比较白痴,快快抓拍下来 防止塑料袋删除,哈哈...不用我再解释什么了,自有后人评定。

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
529 [报告]
发表于 2006-12-22 23:53 |只看该作者
原帖由 secworld 于 2006-12-22 23:48 发表


这句话说的也比较白痴,快快抓拍下来 防止塑料袋删除,哈哈...不用我再解释什么了,自有后人评定。



是的,据我所知,只有一个OS曾经用过dirty位来互斥并发可能,就是xunil;
不过Linux没有这么用过

论坛徽章:
0
530 [报告]
发表于 2006-12-23 00:03 |只看该作者
原帖由 塑料袋 于 2006-12-22 23:34 发表
__sync_one(....){
        ......
        /* Set I_LOCK, reset I_DIRTY */  <-------Linus Torvalds写于1997年的注释,看上去貌似很多余吧?
        dirty = inode->i_state & I_DIRTY;
        inode->i_state |= I_LOCK; <-------就算是学过C语言的猪,也知道这两句的表面意思,但塑料袋却不懂
        inode->i_state &= ~I_DIRTY; <-------Linus Torvalds先生的注释就是给他这种连猪都不如的人写的
        spin_unlock(&inode_lock);
        ......
}


这些什么也不能说明,执行完这三条后,inode的状态,引用计数等,该怎么变还怎么变,无法预测。

只是因为I_Lock的设置,致使inode暂时无法改变它所在的lru链而已

所以__sync_one中,后来是refile_inode,而不是简单的把inode记做clean

我不知道你想说明什么?
我只知道我惹不起你,如果以后我不再回这个帖,就是我怕了你,认输了。


该怎么变还怎么变?大哥,__sync_one是带锁进入的我不主动spin_unlock,谁能获得这个inode的呀?你到底行不行啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP