在Linux内核中,list_for_each_entry_rcu()用于遍历读取器端临界区中的rcu保护列表。如果使用list_for_each_entry()会发生什么?它会引起问题吗?
list_for_each_entry_rcu()
list_for_each_entry()
t9aqgxwy1#
在某些架构中,CPU可以提前查看下一个指针。特别是对于ALPHA和SPARC CPU。因此,需要list_for_each_entry_rcu(),这实际上是设置了内存屏障来限制这种行为。但是在writer端,我们可以避免使用list_for_each_entry_rcu(),而使用list_for_each_entry()。
1条答案
按热度按时间t9aqgxwy1#
在某些架构中,CPU可以提前查看下一个指针。特别是对于ALPHA和SPARC CPU。因此,需要
list_for_each_entry_rcu()
,这实际上是设置了内存屏障来限制这种行为。但是在writer端,我们可以避免使用list_for_each_entry_rcu()
,而使用list_for_each_entry()
。