学做网站的视频教学深圳的设计网站公司
news/
2025/9/22 19:56:19/
文章来源:
学做网站的视频教学,深圳的设计网站公司,微信视频号怎么引流推广,甘州区住房和城乡建设局网站晚上我看到了JeffXie 写了一篇关于内存屏障的文章#xff0c;后面又看到Linus对一次内存屏障修改的建议#xff0c;所以就有了这篇文章。https://mp.weixin.qq.com/s/H7Pw8xCKcNu41UGaYB648w在我看来#xff0c;内存屏障谁为了让计算机做更加正确的事情#xff0c;不希望计…晚上我看到了JeffXie 写了一篇关于内存屏障的文章后面又看到Linus对一次内存屏障修改的建议所以就有了这篇文章。https://mp.weixin.qq.com/s/H7Pw8xCKcNu41UGaYB648w在我看来内存屏障谁为了让计算机做更加正确的事情不希望计算机对计算进行排序导致结果不符合预期。因为是多核计算机所以会对上面的计算进行指令排序说指令排序可能觉得拗口可以认为多核计算的顺序是随机的随机的执行就会导致随机的结果。随机的执行结果肯定不符合我们的预期。—— 所以就出现了内存屏障内存屏障如果理解简单一些可以认为是写优先读次之因为是对同一片内存「同一个变量」操作。加了内存屏障的标志多个cpu之间互相可见比如cpu1要对变量a操作如果加了内存屏障其他cpu也会看到cpu1的这个执行指令就会先等cpu1完成后再去读。最近的一个关于内存屏障的提交被Linus驳回重写提交的理由和代码修改如下Mikulas是这部分的代码的修改提交他首先提出了自己的疑问在wait_on_bit这个函数里面加上内存屏障是否合适他觉得应该加上内存屏障的原因是因为这个函数在其他地方要调用在一些weak memory ordering架构上这个函数有可能返回无效的值。关于weak memory ordering 我认为是对指令的一种排序如果在排序不恰当的架构上就有可能引起问题。之后就是之后就是Linus的建议首先这是一个基础的接口函数这个问题在x86上是没有问题的。之后又说明了内存屏障是不能轻易使用的要正确的使用它你为什么还视图提交这方面的comments。其中提到的修改建议最后被使用在最新的内核代码中就是重新写一个test_bit_acquire()函数。而新的函数里面有一个函数是 smp_load_acquire()这个函数我查了很多资料最后我自己的理解是获取这个地址是否有在被其他cpu写如果没有就表示当前的cpu可以使用这个地址的值。可以认为是内存屏障更加精细的函数操作。——最后的修改如下关于如何正确只用内存屏障下面的文章会非常适合大家https://mp.weixin.qq.com/s/d8UwmHzTxKICN3HvGnbdHQ参考https://lkml.org/lkml/2022/8/25/1225https://www.kernel.org/doc/Documentation/memory-barriers.txthttp://vh21.github.io/linux/2015/04/25/linux-barrier-api.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910195.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!