call_rcu should be called from registered RCU read-side threads.
For the QSBR flavor, the caller should be online.
+void rcu_barrier(void);
+
+ Wait for all call_rcu() work initiated prior to rcu_barrier() by
+ _any_ thread on the system to have completed before rcu_barrier()
+ returns. rcu_barrier() should never be called from a call_rcu()
+ thread. This function can be used, for instance, to ensure that
+ all memory reclaim involving a shared object has completed
+ before allowing dlclose() of this shared object to complete.
+
struct call_rcu_data *create_call_rcu_data(unsigned long flags,
int cpu_affinity);
"cpu_affinity" specifies a cpu on which the call_rcu thread should
be affined to. It is ignored if negative.
-struct call_rcu_data *get_default_call_rcu_data(void);
-
- Returns the handle of the default call_rcu() helper thread.
-
-struct call_rcu_data *get_call_rcu_data(void);
-
- Returns the handle of the current thread's call_rcu() helper
- thread, which might well be the default helper thread.
- get_call_rcu_data should be called from registered RCU read-side
- threads. For the QSBR flavor, the caller should be online.
-
void call_rcu_data_free(struct call_rcu_data *crdp);
Terminates a call_rcu() helper thread and frees its associated
Returns the handle for the current thread's call_rcu() helper
thread, which is either, in increasing order of preference:
per-thread hard-assigned helper thread, per-cpu helper thread,
- or default helper thread.
+ or default helper thread. get_call_rcu_data should be called
+ from registered RCU read-side threads. For the QSBR flavor, the
+ caller should be online.
pthread_t get_call_rcu_thread(struct call_rcu_data *crdp);