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