/Linux-v5.15/kernel/rcu/ |
D | tree.h | 40 struct rcu_node { struct 85 struct rcu_node *parent; argument 162 struct rcu_node *mynode; /* This CPU's leaf of hierarchy */ 299 struct rcu_node node[NUM_RCU_NODES]; /* Hierarchy. */ 300 struct rcu_node *level[RCU_NUM_LVLS + 1]; 408 static int rcu_preempt_blocked_readers_cgp(struct rcu_node *rnp); 410 static bool rcu_preempt_has_tasks(struct rcu_node *rnp); 412 static int rcu_print_task_exp_stall(struct rcu_node *rnp); 413 static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp); 415 static void dump_blkd_tasks(struct rcu_node *rnp, int ncheck); [all …]
|
D | tree_exp.h | 13 static int rcu_print_task_exp_stall(struct rcu_node *rnp); 80 struct rcu_node *rnp; in sync_exp_reset_tree_hotplug() 81 struct rcu_node *rnp_up; in sync_exp_reset_tree_hotplug() 133 struct rcu_node *rnp; in sync_exp_reset_tree() 150 static bool sync_rcu_exp_done(struct rcu_node *rnp) in sync_rcu_exp_done() 161 static bool sync_rcu_exp_done_unlocked(struct rcu_node *rnp) in sync_rcu_exp_done_unlocked() 182 static void __rcu_report_exp_rnp(struct rcu_node *rnp, in __rcu_report_exp_rnp() 218 static void __maybe_unused rcu_report_exp_rnp(struct rcu_node *rnp, bool wake) in rcu_report_exp_rnp() 230 static void rcu_report_exp_cpu_mult(struct rcu_node *rnp, in rcu_report_exp_cpu_mult() 283 struct rcu_node *rnp = rdp->mynode; in exp_funnel_lock() [all …]
|
D | tree_plugin.h | 107 static void rcu_report_exp_rnp(struct rcu_node *rnp, bool wake); 153 static void rcu_preempt_ctxt_queue(struct rcu_node *rnp, struct rcu_data *rdp) in rcu_preempt_ctxt_queue() 312 struct rcu_node *rnp; in rcu_note_context_switch() 365 static int rcu_preempt_blocked_readers_cgp(struct rcu_node *rnp) in rcu_preempt_blocked_readers_cgp() 437 struct rcu_node *rnp) in rcu_next_node_entry() 451 static bool rcu_preempt_has_tasks(struct rcu_node *rnp) in rcu_preempt_has_tasks() 470 struct rcu_node *rnp; in rcu_preempt_deferred_qs_irqrestore() 637 struct rcu_node *rnp = rdp->mynode; in rcu_read_unlock_special() 681 static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp) in rcu_preempt_check_blocked_tasks() 769 dump_blkd_tasks(struct rcu_node *rnp, int ncheck) in dump_blkd_tasks() [all …]
|
D | tree.c | 145 static void rcu_report_qs_rnp(unsigned long mask, struct rcu_node *rnp, 147 static void rcu_init_new_rnp(struct rcu_node *rnp_leaf); 148 static void rcu_cleanup_dead_rnp(struct rcu_node *rnp_leaf); 149 static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu); 153 static void check_cb_ovld_locked(struct rcu_data *rdp, struct rcu_node *rnp); 219 static unsigned long rcu_rnp_online_cpus(struct rcu_node *rnp) in rcu_rnp_online_cpus() 579 static struct rcu_node *rcu_get_root(void) in rcu_get_root() 1163 struct rcu_node *rnp; in rcu_lockdep_current_cpu_online() 1187 static void rcu_gpnum_ovf(struct rcu_node *rnp, struct rcu_data *rdp) in rcu_gpnum_ovf() 1224 struct rcu_node *rnp = rdp->mynode; in rcu_implicit_dynticks_qs() [all …]
|
D | tree_stall.h | 187 struct rcu_node *rnp; in rcu_iw_handler() 209 static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp) in rcu_print_detail_task_stall_rnp() 259 static int rcu_print_task_stall(struct rcu_node *rnp, unsigned long flags) in rcu_print_task_stall() 309 static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp) in rcu_print_detail_task_stall_rnp() 317 static int rcu_print_task_stall(struct rcu_node *rnp, unsigned long flags) in rcu_print_task_stall() 335 struct rcu_node *rnp; in rcu_dump_cpu_stacks() 527 struct rcu_node *rnp; in print_other_cpu_stall() 598 struct rcu_node *rnp = rcu_get_root(); in print_cpu_stall() 658 struct rcu_node *rnp; in check_cpu_stall() 766 struct rcu_node *rnp; in rcu_check_boost_fail() [all …]
|
D | tree_nocb.h | 201 static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp) in rcu_nocb_gp_get() 206 static void rcu_init_one_nocb(struct rcu_node *rnp) in rcu_init_one_nocb() 619 struct rcu_node *rnp; in nocb_gp_wait() 790 struct rcu_node *rnp = rdp->mynode; in nocb_cb_wait() 1329 struct rcu_node *rnp = rdp->mynode; in show_rcu_nocb_gp_state() 1443 static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp) in rcu_nocb_gp_get() 1448 static void rcu_init_one_nocb(struct rcu_node *rnp) in rcu_init_one_nocb()
|
D | Kconfig | 160 lock contention on the leaf-level rcu_node structures unless 167 kernel boot parameter to avoid contention on the rcu_node
|
/Linux-v5.15/Documentation/RCU/Design/Data-Structures/ |
D | Data-Structures.rst | 28 of ``rcu_node`` structures. Each leaf node of the ``rcu_node`` tree has up 34 which results in a three-level ``rcu_node`` tree. 36 at boot time, resulting in an ``rcu_node`` tree with only a single node. 43 and other events are recorded by the leaf-level ``rcu_node`` 46 grace periods are completed at the tree's root ``rcu_node`` 66 | ``rcu_node`` structures than further up the tree. Therefore, if the | 67 | leaf ``rcu_node`` structures have fanout of 64, the contention on | 70 | for the leaves of the ``rcu_node`` tree. | 74 | ``rcu_node`` structures must also be reduced. Such reduction can be | 77 | on the non-leaf ``rcu_node`` structures, you may use the | [all …]
|
/Linux-v5.15/Documentation/RCU/Design/Memory-Ordering/ |
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 207 6 struct rcu_node *rnp; 250 .. kernel-figure:: rcu_node-lock.svg 252 The box represents the ``rcu_node`` structure's ``->lock`` critical 310 ``rcu_node`` structure's ``->lock``. In all cases, there is full [all …]
|
/Linux-v5.15/Documentation/RCU/Design/Expedited-Grace-Periods/ |
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`` structure synchronizes access [all …]
|
/Linux-v5.15/Documentation/RCU/ |
D | stallwarn.rst | 281 which is way less than 23807. Finally, the root rcu_node structure's 356 rcu_node structure correspond to CPUs and/or tasks that are blocking the 359 rcu_node structures in the tree.
|
/Linux-v5.15/drivers/scsi/cxgbi/ |
D | libcxgbi.h | 480 struct list_head rcu_node; member
|
D | libcxgbi.c | 157 list_add_tail_rcu(&cdev->rcu_node, &cdev_rcu_list); in cxgbi_device_register() 177 list_del_rcu(&cdev->rcu_node); in cxgbi_device_unregister() 267 list_for_each_entry_rcu(cdev, &cdev_rcu_list, rcu_node) { in cxgbi_device_find_by_netdev_rcu()
|
/Linux-v5.15/drivers/net/ethernet/chelsio/inline_crypto/chtls/ |
D | chtls.h | 235 struct list_head rcu_node; member
|
/Linux-v5.15/include/linux/ |
D | sched.h | 58 struct rcu_node; 830 struct rcu_node *rcu_blocked_node;
|
/Linux-v5.15/drivers/net/ethernet/chelsio/cxgb4/ |
D | cxgb4.h | 1156 struct list_head rcu_node; member
|
/Linux-v5.15/Documentation/admin-guide/ |
D | kernel-parameters.txt | 4352 Dump the structure of the rcu_node combining tree 4368 the rcu_node combining tree. 4381 Disable autobalancing of the rcu_node combining 4388 leaf rcu_node structure. Useful for very 4490 rcu_node tree with an eye towards determining
|
/Linux-v5.15/Documentation/RCU/Design/Requirements/ |
D | Requirements.rst | 1961 ``rcu_node`` structure whose CPUs are all offline. 2311 on the ``rcu_node`` structure. RCU is required to tolerate all CPUs
|