The Linux Kernel API | ||
---|---|---|
<<< Previous | Next >>> |
The caller must take whatever precautions are necessary (such as holding appropriate locks) to avoid racing with another list-mutation primitive, such as hlist_add_head_rcu or hlist_del_rcu, running on this same list. However, it is perfectly legal to run concurrently with the _rcu list-traversal primitives, such as hlist_for_each_entry, but only if smp_read_barrier_depends is used to prevent memory-consistency problems on Alpha CPUs. Regardless of the type of CPU, the list-traversal primitive must be guarded by rcu_read_lock.
OK, so why don't we have an hlist_for_each_entry_rcu???
The caller must take whatever precautions are necessary (such as holding appropriate locks) to avoid racing with another list-mutation primitive, such as hlist_add_head_rcu or hlist_del_rcu, running on this same list. However, it is perfectly legal to run concurrently with the _rcu list-traversal primitives, such as hlist_for_each_entry, but only if smp_read_barrier_depends is used to prevent memory-consistency problems on Alpha CPUs. Regardless of the type of CPU, the list-traversal primitive must be guarded by rcu_read_lock.
OK, so why don't we have an hlist_for_each_entry_rcu???
<<< Previous | Home | Next >>> |
hlist_del_rcu | Up | hlist_for_each_entry |