/linux/kernel/rcu/ |
A 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]; 410 static bool rcu_preempt_has_tasks(struct rcu_node *rnp); 412 static int rcu_print_task_exp_stall(struct rcu_node *rnp); 415 static void dump_blkd_tasks(struct rcu_node *rnp, int ncheck); 417 static void rcu_preempt_boost_start_gp(struct rcu_node *rnp); 424 static bool rcu_preempt_has_tasks(struct rcu_node *rnp); [all …]
|
A D | tree_exp.h | 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() 283 struct rcu_node *rnp = rdp->mynode; in exp_funnel_lock() 346 struct rcu_node *rnp = container_of(rewp, struct rcu_node, rew); in sync_rcu_exp_select_node_cpus() 426 struct rcu_node *rnp; in sync_rcu_exp_select_cpus() 494 struct rcu_node *rnp; in synchronize_rcu_expedited_wait() 581 struct rcu_node *rnp; in rcu_exp_wait_wake() 645 struct rcu_node *rnp = rdp->mynode; in rcu_exp_handler() 755 struct rcu_node *rnp; in sync_sched_exp_online_cleanup() [all …]
|
A D | tree_plugin.h | 312 struct rcu_node *rnp; in rcu_note_context_switch() 437 struct rcu_node *rnp) in rcu_next_node_entry() 470 struct rcu_node *rnp; in rcu_preempt_deferred_qs_irqrestore() 637 struct rcu_node *rnp = rdp->mynode; in rcu_read_unlock_special() 769 dump_blkd_tasks(struct rcu_node *rnp, int ncheck) in dump_blkd_tasks() 776 struct rcu_node *rnp1; in dump_blkd_tasks() 1006 static int rcu_boost(struct rcu_node *rnp) in rcu_boost() 1071 struct rcu_node *rnp = (struct rcu_node *)arg; in rcu_boost_kthread() 1218 struct rcu_node *rnp; in rcu_spawn_boost_kthreads() 1325 struct rcu_node *rnp; in rcu_try_advance_all_cbs() [all …]
|
A D | tree.c | 1163 struct rcu_node *rnp; in rcu_lockdep_current_cpu_online() 1367 struct rcu_node *rnp; in rcu_start_this_gp() 1670 struct rcu_node *rnp; in note_gp_changes() 2281 struct rcu_node *rnp; in rcu_report_qs_rdp() 2617 struct rcu_node *rnp; in force_qs_rnp() 2665 struct rcu_node *rnp; in rcu_force_quiescent_state() 3786 struct rcu_node *rnp; in start_poll_synchronize_rcu() 4183 struct rcu_node *rnp; in rcutree_online_cpu() 4208 struct rcu_node *rnp; in rcutree_offline_cpu() 4239 struct rcu_node *rnp; in rcu_cpu_starting() [all …]
|
A 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() 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() 815 struct rcu_node *rnp; in show_rcu_gp_kthreads() [all …]
|
A 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() 618 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()
|
A 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/Documentation/RCU/Design/Data-Structures/ |
A 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. 213 1 struct rcu_node node[NUM_RCU_NODES]; 252 first leaf ``rcu_node`` structure. 307 The ``rcu_node`` Structure 333 1 struct rcu_node *parent; 538 Sizing the ``rcu_node`` Array 805 2 struct rcu_node *mynode; 900 its leaf ``rcu_node`` structure. Recall that each ``rcu_node`` 1064 5 struct rcu_node *rcu_blocked_node; [all …]
|
/linux/Documentation/RCU/Design/Memory-Ordering/ |
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. 206 5 struct rcu_node *rnp; 245 .. kernel-figure:: rcu_node-lock.svg 348 root ``rcu_node`` structure is touched. 358 leaf ``rcu_node`` structure has transitioned to zero, 361 ``rcu_node`` structure onlines its first CPU and if the next 364 ``rcu_node`` structure has no online CPUs). 417 ``rcu_node`` tree only until they encountered an ``rcu_node`` structure [all …]
|
/linux/Documentation/RCU/Design/Expedited-Grace-Periods/ |
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 308 Task B at the leftmost and rightmost leaf ``rcu_node`` structures, 312 ``->exp_seq_rq`` field of their respective ``rcu_node`` structures: 323 up to the root ``rcu_node`` structure, and, seeing that its desired 345 ``rcu_node`` structures already have that value recorded. They will 346 therefore block on their respective ``rcu_node`` structures' [all …]
|
/linux/Documentation/RCU/ |
A D | stallwarn.rst | 291 which is way less than 23807. Finally, the root rcu_node structure's 366 rcu_node structure correspond to CPUs and/or tasks that are blocking the 369 rcu_node structures in the tree.
|
/linux/drivers/net/ethernet/chelsio/inline_crypto/chtls/ |
A D | chtls.h | 235 struct list_head rcu_node; member
|
/linux/drivers/scsi/cxgbi/ |
A D | libcxgbi.h | 480 struct list_head rcu_node; member
|
A 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/include/linux/ |
A D | sched.h | 58 struct rcu_node; 828 struct rcu_node *rcu_blocked_node;
|
/linux/drivers/net/ethernet/chelsio/cxgb4/ |
A D | cxgb4.h | 1156 struct list_head rcu_node; member
|
/linux/Documentation/admin-guide/ |
A D | kernel-parameters.txt | 4382 Dump the structure of the rcu_node combining tree 4398 the rcu_node combining tree. 4411 Disable autobalancing of the rcu_node combining 4418 leaf rcu_node structure. Useful for very 4520 rcu_node tree with an eye towards determining
|
/linux/Documentation/RCU/Design/Requirements/ |
A 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
|