内核里list.h用WRITE_ONCE是什么意思?

内核编译和嵌入式产品的设计与开发
回复
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

内核里list.h用WRITE_ONCE是什么意思?

#1

帖子 科学之子 » 2016-05-07 6:40

内核里list.h用WRITE_ONCE是什么意思?
我输入的关键词生成搜索的页面
找到了如下两个结果:
http://stackoverflow.com/questions/3498 ... rnel-lists
https://github.com/google/ktsan/wiki/RE ... WRITE_ONCE

貌似都是说为了避免一些优化或Miscompilation(意思是编译器Bug?)
但是为什么这里会使用,我还是不明白,看起来很简单的代码,难道也能出现Miscompilation?

而且有些WRITE_ONCE在前,有些则在后,不明白
最关键的是如果我编写内核代码的话,在什么情况下才应该使用WRITE_ONCE或XXX_ONCE?
头像
astolia
论坛版主
帖子: 6436
注册时间: 2008-09-18 13:11

Re: 内核里list.h用WRITE_ONCE是什么意思?

#3

帖子 astolia » 2016-05-07 17:15

stackoverlfow上的问答已经足够了,你所有的疑问,包括那个最关键的问题上面都说了。
回复