rcu_node
struct list_head rcu_node;
struct list_head rcu_node;
list_add_tail_rcu(&cdev->rcu_node, &cdev_rcu_list);
list_del_rcu(&cdev->rcu_node);
list_for_each_entry_rcu(cdev, &cdev_rcu_list, rcu_node) {
struct list_head rcu_node;
struct rcu_node;
struct rcu_node *rcu_blocked_node;
static bool rcu_start_this_gp(struct rcu_node *rnp_start, struct rcu_data *rdp,
struct rcu_node *rnp;
static bool rcu_future_gp_cleanup(struct rcu_node *rnp)
static bool rcu_accelerate_cbs(struct rcu_node *rnp, struct rcu_data *rdp)
static void rcu_accelerate_cbs_unlocked(struct rcu_node *rnp,
static bool rcu_advance_cbs(struct rcu_node *rnp, struct rcu_data *rdp)
static void __maybe_unused rcu_advance_cbs_nowake(struct rcu_node *rnp,
static bool __note_gp_changes(struct rcu_node *rnp, struct rcu_data *rdp)
struct rcu_node *rnp;
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp = rcu_get_root();
static void rcu_report_qs_rnp(unsigned long mask, struct rcu_node *rnp,
static void check_cb_ovld_locked(struct rcu_data *rdp, struct rcu_node *rnp);
static void rcu_cleanup_dead_rnp(struct rcu_node *rnp_leaf);
static void rcu_init_new_rnp(struct rcu_node *rnp_leaf);
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp = rcu_get_root();
static void rcu_report_qs_rnp(unsigned long mask, struct rcu_node *rnp,
struct rcu_node *rnp_c;
rcu_report_unblock_qs_rnp(struct rcu_node *rnp, unsigned long flags)
struct rcu_node *rnp_p;
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp_old = NULL;
struct rcu_node *rnp = rdp->mynode;
static void check_cb_ovld_locked(struct rcu_data *rdp, struct rcu_node *rnp)
struct rcu_node *const rnp = rdp->mynode;
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp = rdp->mynode;
static unsigned long rcu_rnp_online_cpus(struct rcu_node *rnp)
static void rcu_cleanup_dead_rnp(struct rcu_node *rnp_leaf)
struct rcu_node *rnp = rnp_leaf;
static void rcu_init_new_rnp(struct rcu_node *rnp_leaf)
struct rcu_node *rnp = rnp_leaf;
static void rcu_thread_affine_rnp(struct task_struct *t, struct rcu_node *rnp)
static void rcu_spawn_exp_par_gp_kworker(struct rcu_node *rnp)
static void rcu_spawn_rnp_kthreads(struct rcu_node *rnp)
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp = rdp->mynode; /* Outgoing CPU's rdp & rnp. */
struct rcu_node *my_rnp;
struct rcu_node *rnp = rdp->mynode;
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp;
static struct rcu_node *rcu_get_root(void)
static void rcu_gpnum_ovf(struct rcu_node *rnp, struct rcu_data *rdp)
struct rcu_node *rnp = rdp->mynode;
struct rcu_node *rnp1;
static void trace_rcu_this_gp(struct rcu_node *rnp, struct rcu_data *rdp,
struct rcu_node *mynode; /* This CPU's leaf of hierarchy */
struct rcu_node node[NUM_RCU_NODES]; /* Hierarchy. */
struct rcu_node *level[RCU_NUM_LVLS + 1];
static int rcu_preempt_blocked_readers_cgp(struct rcu_node *rnp);
static bool rcu_preempt_has_tasks(struct rcu_node *rnp);
static int rcu_print_task_exp_stall(struct rcu_node *rnp);
static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp);
static void dump_blkd_tasks(struct rcu_node *rnp, int ncheck);
static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags);
static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);
static void rcu_spawn_one_boost_kthread(struct rcu_node *rnp);
static bool rcu_preempt_has_tasks(struct rcu_node *rnp);
static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp);
static void rcu_init_one_nocb(struct rcu_node *rnp);
static void rcu_check_gp_start_stall(struct rcu_node *rnp, struct rcu_data *rdp,
struct rcu_node *parent;
struct rcu_node *rnp;
struct rcu_node *rnp;
static int rcu_print_task_exp_stall(struct rcu_node *rnp);
static void rcu_exp_print_detail_task_stall_rnp(struct rcu_node *rnp);
static bool sync_rcu_exp_done(struct rcu_node *rnp)
static bool sync_rcu_exp_done_unlocked(struct rcu_node *rnp)
static void __rcu_report_exp_rnp(struct rcu_node *rnp,
static void __maybe_unused rcu_report_exp_rnp(struct rcu_node *rnp, bool wake)
static void rcu_report_exp_cpu_mult(struct rcu_node *rnp, unsigned long flags,
struct rcu_node *rnp = rdp->mynode;
struct rcu_node *rnp = rdp->mynode;
struct rcu_node *rnp_root = rcu_get_root();
struct rcu_node *rnp = container_of(rewp, struct rcu_node, rew);
static inline bool rcu_exp_par_worker_started(struct rcu_node *rnp)
static inline void sync_rcu_exp_select_cpus_queue_work(struct rcu_node *rnp)
static inline void sync_rcu_exp_select_cpus_flush_work(struct rcu_node *rnp)
struct rcu_node *rnp;
struct rcu_node *rnp_root = rcu_get_root();
struct rcu_node *rnp;
struct rcu_node *rnp_root = rcu_get_root();
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp = rdp->mynode;
static int rcu_print_task_exp_stall(struct rcu_node *rnp)
static void rcu_exp_print_detail_task_stall_rnp(struct rcu_node *rnp)
struct rcu_node *rnp;
struct rcu_node *rnp_up;
struct rcu_node *rnp = rdp->mynode;
static int rcu_print_task_exp_stall(struct rcu_node *rnp)
static void rcu_exp_print_detail_task_stall_rnp(struct rcu_node *rnp)
struct rcu_node *rnp;
struct rcu_node *rnp = container_of(wp, struct rcu_node, exp_poll_wq);
struct rcu_node *rnp = rdp->mynode;
static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp)
static void rcu_init_one_nocb(struct rcu_node *rnp)
static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp)
static void rcu_init_one_nocb(struct rcu_node *rnp)
struct rcu_node *rnp;
struct rcu_node *rnp = rdp->mynode;
static int rcu_preempt_blocked_readers_cgp(struct rcu_node *rnp)
static bool rcu_preempt_has_tasks(struct rcu_node *rnp)
static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp)
dump_blkd_tasks(struct rcu_node *rnp, int ncheck)
static int rcu_boost(struct rcu_node *rnp)
static void rcu_report_exp_rnp(struct rcu_node *rnp, bool wake);
struct rcu_node *rnp = (struct rcu_node *)arg;
static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags)
static void rcu_preempt_boost_start_gp(struct rcu_node *rnp)
static void rcu_spawn_one_boost_kthread(struct rcu_node *rnp)
static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags)
static void rcu_preempt_boost_start_gp(struct rcu_node *rnp)
static void rcu_spawn_one_boost_kthread(struct rcu_node *rnp)
static void rcu_preempt_ctxt_queue(struct rcu_node *rnp, struct rcu_data *rdp)
struct rcu_node *rnp;
static int rcu_preempt_blocked_readers_cgp(struct rcu_node *rnp)
struct rcu_node *rnp)
static bool rcu_preempt_has_tasks(struct rcu_node *rnp)
struct rcu_node *rnp;
struct rcu_node *rnp,
struct rcu_node *rnp = rdp->mynode;
static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp)
dump_blkd_tasks(struct rcu_node *rnp, int ncheck)
struct rcu_node *rnp1;
static void rcu_check_gp_start_stall(struct rcu_node *rnp, struct rcu_data *rdp,
struct rcu_node *rnp_root = rcu_get_root();
struct rcu_node *rnp;
static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp)
static int rcu_print_task_stall(struct rcu_node *rnp, unsigned long flags)
static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp)
static int rcu_print_task_stall(struct rcu_node *rnp, unsigned long flags)
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp = rcu_get_root();
struct rcu_node *rnp;
struct rcu_node *rnp;
struct rcu_node *rnp;