/linux/kernel/rcu/ |
H A D | tree.h | 41 struct rcu_node { struct 42 raw_spinlock_t __private lock; /* Root rcu_node's lock protects */ argument 50 /* In leaf rcu_node, each bit corresponds to */ argument 52 /* bit corresponds to a child rcu_node */ 86 /* rcu_node tree? */ argument 87 struct rcu_node *parent; argument 105 /* boosting is needed for this rcu_node */ argument 107 /* queued on this rcu_node structure that */ 120 /* boosting for this rcu_node structure. */ argument 123 unsigned long n_boosts; /* Number of boosts for this rcu_node structur argument 54 rcu_gp_init_maskrcu_node global() argument 55 qsmaskinitrcu_node global() argument 59 qsmaskinitnextrcu_node global() argument 60 expmaskrcu_node global() argument 142 exp_poll_wqrcu_node global() argument [all...] |
H A D | tree_exp.h | 14 static int rcu_print_task_exp_stall(struct rcu_node *rnp); 15 static void rcu_exp_print_detail_task_stall_rnp(struct rcu_node *rnp); 71 * Reset the ->expmaskinit values in the rcu_node tree to reflect any 84 struct rcu_node *rnp; in sync_exp_reset_tree_hotplug() 85 struct rcu_node *rnp_up; in sync_exp_reset_tree_hotplug() 94 * CPUs for the current rcu_node structure up the rcu_node tree. in sync_exp_reset_tree_hotplug() 131 * Reset the ->expmask values in the rcu_node tree in preparation for 137 struct rcu_node *rnp; in sync_exp_reset_tree() 157 * for the specified rcu_node structur [all...] |
H A D | tree_plugin.h | 116 static void rcu_report_exp_rnp(struct rcu_node *rnp, bool wake); 162 static void rcu_preempt_ctxt_queue(struct rcu_node *rnp, struct rcu_data *rdp) in rcu_preempt_ctxt_queue() 288 * some leaf rcu_node structure's ->blkd_tasks list. In addition to the 328 struct rcu_node *rnp; in rcu_note_context_switch() 378 * for the specified rcu_node structure. If the caller needs a reliable 379 * answer, it must hold the rcu_node's ->lock. 381 static int rcu_preempt_blocked_readers_cgp(struct rcu_node *rnp) in rcu_preempt_blocked_readers_cgp() 453 struct rcu_node *rnp) in rcu_next_node_entry() 464 * Return true if the specified rcu_node structure has tasks that were 467 static bool rcu_preempt_has_tasks(struct rcu_node *rn [all...] |
H A D | tree.c | 111 /* Dump rcu_node combining tree at boot to verify correct setup. */ 119 /* Control rcu_node-tree auto-balancing at boot time. */ 159 static void rcu_report_qs_rnp(unsigned long mask, struct rcu_node *rnp, 163 static void check_cb_ovld_locked(struct rcu_data *rdp, struct rcu_node *rnp); 167 static void rcu_cleanup_dead_rnp(struct rcu_node *rnp_leaf); 168 static void rcu_init_new_rnp(struct rcu_node *rnp_leaf); 216 * permit this function to be invoked without holding the root rcu_node 541 static struct rcu_node *rcu_get_root(void) in rcu_get_root() 683 // handler and that the rcu_node lock is an irq-disabled lock in __rcu_irq_enter_check_tick() 797 * of the rcu_node [all...] |
H A D | tree_stall.h | 252 struct rcu_node *rnp; in rcu_iw_handler() 272 * grace period on the specified rcu_node structure. 274 static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp) in rcu_print_detail_task_stall_rnp() 324 static int rcu_print_task_stall(struct rcu_node *rnp, unsigned long flags) in rcu_print_task_stall() 338 pr_err("\tTasks blocked on level-%d rcu_node (CPUs %d-%d):", in rcu_print_task_stall() 374 static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp) in rcu_print_detail_task_stall_rnp() 382 static int rcu_print_task_stall(struct rcu_node *rnp, unsigned long flags) in rcu_print_task_stall() 400 struct rcu_node *rnp; in rcu_dump_cpu_stacks() 638 struct rcu_node *rnp; in print_other_cpu_stall() 714 struct rcu_node *rn in print_cpu_stall() [all...] |
H A D | tree_nocb.h | 182 static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp) in rcu_nocb_gp_get() 187 static void rcu_init_one_nocb(struct rcu_node *rnp) in rcu_init_one_nocb() 661 struct rcu_node *rnp; in nocb_gp_wait() 883 struct rcu_node *rnp = rdp->mynode; in nocb_cb_wait() 1529 struct rcu_node *rnp = rdp->mynode; in show_rcu_nocb_gp_state() 1651 static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp) in rcu_nocb_gp_get() 1656 static void rcu_init_one_nocb(struct rcu_node *rnp) in rcu_init_one_nocb()
|
H A D | Kconfig | 199 lock contention on the leaf-level rcu_node structures unless 206 kernel boot parameter to avoid contention on the rcu_node
|
/linux/Documentation/RCU/Design/Memory-Ordering/ |
H A D | Tree-RCU-Memory-Ordering.rst | 50 critical section for the ``rcu_node`` structure's 62 Therefore, for any given ``rcu_node`` structure, any access 71 on different ``rcu_node`` structures. 118 | But the chain of rcu_node-structure lock acquisitions guarantees | 166 | by the CPU's leaf ``rcu_node`` structure's ``->lock`` as described | 194 the ``rcu_node`` structure's ``->lock`` field, so much so that it is 206 5 struct rcu_node *rnp; 245 .. kernel-figure:: rcu_node-lock.svg 247 The box represents the ``rcu_node`` structure's ``->lock`` critical 305 ``rcu_node`` structur [all...] |
/linux/Documentation/RCU/Design/Expedited-Grace-Periods/ |
H A D | Expedited-Grace-Periods.rst | 156 the ``rcu_node`` structure's ``->expmaskinitnext`` field. The 157 ``rcu_node`` structure's ``->expmaskinit`` field tracks the 162 that is, when the ``rcu_node`` structure's ``->expmaskinitnext`` 164 period, which triggers an update of each ``rcu_node`` structure's 166 #. Each ``rcu_node`` structure's ``->expmaskinit`` field is used to 171 #. Any CPU that goes offline will clear its bit in its leaf ``rcu_node`` 215 | bitmasks in the ``rcu_node`` tree. | 289 the expedited grace period is to use the ``rcu_node`` combining tree, as 291 corresponding to a given grace period arriving at a given ``rcu_node`` 298 ``->exp_lock`` field in the ``rcu_node`` structur [all...] |
/linux/drivers/net/ethernet/chelsio/inline_crypto/chtls/ |
H A D | chtls.h | 235 struct list_head rcu_node; member
|
/linux/Documentation/RCU/ |
H A D | stallwarn.rst | 314 which is way less than 23807. Finally, the root rcu_node structure's 389 rcu_node structure correspond to CPUs and/or tasks that are blocking the 392 rcu_node structures in the tree.
|
/linux/drivers/net/ethernet/chelsio/cxgb4/ |
H A D | cxgb4.h | 1154 struct list_head rcu_node; member
|
/linux/Documentation/RCU/Design/Requirements/ |
H A D | Requirements.rst | 1961 ``rcu_node`` structure whose CPUs are all offline. 2024 release the `rcu_node` lock to wake the RCU grace-period kthread: 2405 on the ``rcu_node`` structure. RCU is required to tolerate all CPUs
|