Home
last modified time | relevance | path

Searched refs:rnp (Results 1 – 9 of 9) sorted by relevance

/linux/kernel/rcu/
H A Dtree_exp.h98 if (rnp->expmaskinit == rnp->expmaskinitnext) { in sync_exp_reset_tree_hotplug()
105 rnp->expmaskinit = rnp->expmaskinitnext; in sync_exp_reset_tree_hotplug()
143 WRITE_ONCE(rnp->expmask, rnp->expmaskinit); in sync_exp_reset_tree()
209 rnp = rnp->parent; in __rcu_report_exp_rnp()
212 WRITE_ONCE(rnp->expmask, rnp->expmask & ~mask); in __rcu_report_exp_rnp()
244 WRITE_ONCE(rnp->expmask, rnp->expmask & ~mask); in rcu_report_exp_cpu_mult()
307 for (; rnp != NULL; rnp = rnp->parent) { in exp_funnel_lock()
318 rnp->grplo, rnp->grphi, in exp_funnel_lock()
327 rnp->grplo, rnp->grphi, TPS("nxtlvl")); in exp_funnel_lock()
395 WRITE_ONCE(rnp->exp_tasks, rnp->blkd_tasks.next); in __sync_rcu_exp_select_node_cpus()
[all …]
H A Dtree_plugin.h175 WARN_ON_ONCE(rnp->qsmaskinitnext & ~rnp->qsmaskinit & rnp->qsmask & in rcu_preempt_ctxt_queue()
256 WARN_ON_ONCE(rnp->completedqs == rnp->gp_seq); in rcu_preempt_ctxt_queue()
533 WARN_ON_ONCE(rnp->completedqs == rnp->gp_seq && in rcu_preempt_deferred_qs_irqrestore()
713 (rnp->qsmaskinit || rnp->wait_blkd_tasks)) { in rcu_preempt_check_blocked_tasks()
714 WRITE_ONCE(rnp->gp_tasks, rnp->blkd_tasks.next); in rcu_preempt_check_blocked_tasks()
799 __func__, rnp->grplo, rnp->grphi, rnp->level, in dump_blkd_tasks()
800 (long)READ_ONCE(rnp->gp_seq), (long)rnp->completedqs); in dump_blkd_tasks()
815 for (cpu = rnp->grplo; cpu <= rnp->grphi; cpu++) { in dump_blkd_tasks()
1074 if (rnp->exp_tasks == NULL && rnp->boost_tasks == NULL) { in rcu_boost()
1112 rnp->n_boosts++; in rcu_boost()
[all …]
H A Dtree.c857 __func__, rnp->grplo, rnp->grphi, rnp->level, in rcu_watching_snap_recheck()
993 for (rnp = rnp_start; 1; rnp = rnp->parent) { in rcu_start_this_gp()
1925 rnp->qsmask = rnp->qsmaskinit; in rcu_gp_init()
1931 rnp->level, rnp->grplo, in rcu_gp_init()
2315 rnp->grplo, rnp->grphi, in rcu_report_qs_rnp()
2333 rnp = rnp->parent; in rcu_report_qs_rnp()
2369 rnp->completedqs = rnp->gp_seq; in rcu_report_unblock_qs_rnp()
2754 for (; rnp != NULL; rnp = rnp->parent) { in rcu_force_quiescent_state()
4117 for (rnp = this_cpu_ptr(&rcu_data)->mynode; rnp; rnp = rnp->parent) in synchronize_rcu()
4827 rnp = rnp->parent; in rcu_cleanup_dead_rnp()
[all …]
H A Dtree_stall.h224 struct rcu_node *rnp; in rcu_iw_handler() local
227 rnp = rdp->mynode; in rcu_iw_handler()
297 __releases(rnp->lock) in rcu_print_task_stall()
311 rnp->level, rnp->grplo, rnp->grphi); in rcu_print_task_stall()
355 __releases(rnp->lock) in rcu_print_task_stall()
378 if (rnp->qsmask & leaf_node_cpu_bit(rnp, cpu)) { in rcu_dump_cpu_stacks()
625 if (rnp->qsmask & leaf_node_cpu_bit(rnp, cpu)) { in print_other_cpu_stall()
794 rnp = rdp->mynode; in check_cpu_stall()
869 if (rnp->gp_tasks) in rcu_check_boost_fail()
878 if (rnp->qsmask & (1UL << (cpu - rnp->grplo))) { in rcu_check_boost_fail()
[all …]
H A Drcu.h382 #define rcu_is_leaf_node(rnp) ((rnp)->level == rcu_num_lvls - 1) argument
385 #define rcu_is_last_leaf_node(rnp) ((rnp) == &rcu_state.node[rcu_num_nodes - 1]) argument
393 for ((rnp) = &(sp)->node[0]; \
394 (rnp) < &(sp)->node[rcu_num_nodes]; (rnp)++)
406 #define rcu_for_each_leaf_node(rnp) \ argument
407 for ((rnp) = rcu_first_leaf_node(); \
408 (rnp) < &rcu_state.node[rcu_num_nodes]; (rnp)++)
416 (cpu) <= rnp->grphi; \
422 #define rcu_find_next_bit(rnp, cpu, mask) \ argument
427 (cpu) <= rnp->grphi; \
[all …]
H A Dtree.h146 #define leaf_node_cpu_bit(rnp, cpu) (BIT((cpu) - (rnp)->grplo)) argument
471 static int rcu_preempt_blocked_readers_cgp(struct rcu_node *rnp);
473 static bool rcu_preempt_has_tasks(struct rcu_node *rnp);
475 static int rcu_print_task_exp_stall(struct rcu_node *rnp);
476 static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp);
478 static void dump_blkd_tasks(struct rcu_node *rnp, int ncheck);
480 static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);
483 static void rcu_spawn_one_boost_kthread(struct rcu_node *rnp);
484 static bool rcu_preempt_has_tasks(struct rcu_node *rnp);
487 static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp);
[all …]
H A Dtree_nocb.h184 return &rnp->nocb_gp_wq[rcu_seq_ctr(rnp->gp_seq) & 0x1]; in rcu_nocb_gp_get()
189 init_swait_queue_head(&rnp->nocb_gp_wq[0]); in rcu_init_one_nocb()
190 init_swait_queue_head(&rnp->nocb_gp_wq[1]); in rcu_init_one_nocb()
667 struct rcu_node *rnp; in nocb_gp_wait() local
730 rnp = rdp->mynode; in nocb_gp_wait()
807 rnp = my_rdp->mynode; in nocb_gp_wait()
889 struct rcu_node *rnp = rdp->mynode; in nocb_cb_wait() local
1525 struct rcu_node *rnp = rdp->mynode; in show_rcu_nocb_gp_state() local
1535 ".W"[swait_active(&rnp->nocb_gp_wq[0])], in show_rcu_nocb_gp_state()
1536 ".W"[swait_active(&rnp->nocb_gp_wq[1])], in show_rcu_nocb_gp_state()
[all …]
/linux/Documentation/RCU/Design/Memory-Ordering/
H A DTree-RCU-Memory-Ordering.rst84 5 raw_spin_lock_rcu_node(rnp);
87 8 raw_spin_unlock_rcu_node(rnp);
92 13 raw_spin_lock_rcu_node(rnp);
95 16 raw_spin_unlock_rcu_node(rnp);
206 5 struct rcu_node *rnp;
232 31 rnp = rdp->mynode;
233 32 raw_spin_lock_rcu_node(rnp); /* irqs already disabled. */
234 33 needwake = rcu_accelerate_cbs(rnp, rdp);
235 34 raw_spin_unlock_rcu_node(rnp); /* irqs remain disabled. */
/linux/Documentation/RCU/Design/Data-Structures/
H A DData-Structures.rst1106 6 #define rcu_for_each_node_breadth_first(rsp, rnp) \
1107 7 for ((rnp) = &(rsp)->node[0]; \
1108 8 (rnp) < &(rsp)->node[NUM_RCU_NODES]; (rnp)++)
1110 10 #define rcu_for_each_leaf_node(rsp, rnp) \
1111 11 for ((rnp) = (rsp)->level[NUM_RCU_LVLS - 1]; \
1112 12 (rnp) < &(rsp)->node[NUM_RCU_NODES]; (rnp)++)