在rcu读取器端临界区使用list_for_each_entry()是否会导致问题?

ppcbkaq5  于 2023-05-06  发布在  其他
关注(0)|答案(1)|浏览(162)

在Linux内核中,list_for_each_entry_rcu()用于遍历读取器端临界区中的rcu保护列表。如果使用list_for_each_entry()会发生什么?它会引起问题吗?

t9aqgxwy

t9aqgxwy1#

在某些架构中,CPU可以提前查看下一个指针。特别是对于ALPHA和SPARC CPU。因此,需要list_for_each_entry_rcu(),这实际上是设置了内存屏障来限制这种行为。但是在writer端,我们可以避免使用list_for_each_entry_rcu(),而使用list_for_each_entry()

相关问题