/linux/include/trace/events/ |
A D | rcu.h | 77 __field(long, gp_seq) 83 __entry->gp_seq = (long)gp_seq; 117 __field(long, gp_seq) 127 __entry->gp_seq = (long)gp_seq; 156 __field(long, gp_seq) 165 __entry->gp_seq = (long)gp_seq; 326 __entry->gp_seq = (long)gp_seq; 353 __entry->gp_seq = (long)gp_seq; 389 __entry->gp_seq = (long)gp_seq; 426 __entry->gp_seq = (long)gp_seq; [all …]
|
/linux/kernel/rcu/ |
A D | tree.c | 593 *gp_seq = rcu_seq_current(&rcu_state.gp_seq); in rcutorture_get_gp_data() 1627 if (rdp->gp_seq == rnp->gp_seq) in __note_gp_changes() 1631 if (rcu_seq_completed_gp(rdp->gp_seq, rnp->gp_seq) || in __note_gp_changes() 1645 if (rcu_seq_new_gp(rdp->gp_seq, rnp->gp_seq) || in __note_gp_changes() 1674 if ((rdp->gp_seq == rcu_seq_current(&rnp->gp_seq) && in note_gp_changes() 1851 WRITE_ONCE(rnp->gp_seq, rcu_state.gp_seq); in rcu_gp_init() 2286 if (rdp->cpu_no_qs.b.norm || rdp->gp_seq != rnp->gp_seq || in rcu_report_qs_rdp() 3797 return gp_seq; in start_poll_synchronize_rcu() 3905 if (rcu_seq_current(&rnp->gp_seq) != rdp->gp_seq || in rcu_pending() 4149 rdp->gp_seq = READ_ONCE(rnp->gp_seq); in rcutree_prepare_cpu() [all …]
|
A D | tiny.c | 35 unsigned long gp_seq; /* Grace-period counter. */ member 42 .gp_seq = 0 - 300UL, 61 WRITE_ONCE(rcu_ctrlblk.gp_seq, rcu_ctrlblk.gp_seq + 1); in rcu_qs() 189 return READ_ONCE(rcu_ctrlblk.gp_seq); in get_state_synchronize_rcu() 199 unsigned long gp_seq = get_state_synchronize_rcu(); in start_poll_synchronize_rcu() local 205 return gp_seq; in start_poll_synchronize_rcu() 216 return READ_ONCE(rcu_ctrlblk.gp_seq) != oldstate; in poll_state_synchronize_rcu()
|
A D | tree_stall.h | 193 rdp->rcu_iw_gp_seq = rnp->gp_seq; in rcu_iw_handler() 428 ticks_value = rcu_seq_ctr(rcu_state.gp_seq - rdp->gp_seq); in print_cpu_stall_info() 569 if (rcu_seq_current(&rcu_state.gp_seq) != gp_seq) { in print_other_cpu_stall() 685 gs1 = READ_ONCE(rcu_state.gp_seq); in check_cpu_stall() 691 gs2 = READ_ONCE(rcu_state.gp_seq); in check_cpu_stall() 828 (long)data_race(READ_ONCE(rcu_state.gp_seq)), in show_rcu_gp_kthreads() 839 (long)data_race(READ_ONCE(rnp->gp_seq)), in show_rcu_gp_kthreads() 852 ULONG_CMP_GE(READ_ONCE(rcu_state.gp_seq), in show_rcu_gp_kthreads() 883 ULONG_CMP_GE(READ_ONCE(rnp_root->gp_seq), in rcu_check_gp_start_stall() 896 ULONG_CMP_GE(READ_ONCE(rnp_root->gp_seq), in rcu_check_gp_start_stall() [all …]
|
A D | rcu_segcblist.c | 241 BUILD_BUG_ON(RCU_NEXT_TAIL + 1 != ARRAY_SIZE(rsclp->gp_seq)); in rcu_segcblist_init() 242 BUILD_BUG_ON(ARRAY_SIZE(rsclp->tails) != ARRAY_SIZE(rsclp->gp_seq)); in rcu_segcblist_init() 329 *lp = rsclp->gp_seq[RCU_WAIT_TAIL]; in rcu_segcblist_nextgp() 495 if (ULONG_CMP_LT(seq, rsclp->gp_seq[i])) in rcu_segcblist_advance() 520 rsclp->gp_seq[j] = rsclp->gp_seq[i]; in rcu_segcblist_advance() 557 ULONG_CMP_LT(rsclp->gp_seq[i], seq)) in rcu_segcblist_accelerate() 597 rsclp->gp_seq[i] = seq; in rcu_segcblist_accelerate()
|
A D | rcu.h | 464 unsigned long *gp_seq); 473 int *flags, unsigned long *gp_seq) in rcutorture_get_gp_data() argument 476 *gp_seq = 0; in rcutorture_get_gp_data() 499 unsigned long *gp_seq) in srcutorture_get_gp_data() argument 504 *gp_seq = sp->srcu_idx; in srcutorture_get_gp_data() 511 unsigned long *gp_seq);
|
A D | tree_plugin.h | 247 WARN_ON_ONCE(rnp->completedqs == rnp->gp_seq); in rcu_preempt_ctxt_queue() 287 __this_cpu_read(rcu_data.gp_seq), in rcu_qs() 336 ? rnp->gp_seq in rcu_note_context_switch() 337 : rcu_seq_snap(&rnp->gp_seq)); in rcu_note_context_switch() 517 WARN_ON_ONCE(rnp->completedqs == rnp->gp_seq && in rcu_preempt_deferred_qs_irqrestore() 525 rnp->gp_seq, t->pid); in rcu_preempt_deferred_qs_irqrestore() 546 rnp->gp_seq, in rcu_preempt_deferred_qs_irqrestore() 695 rnp->gp_seq, t->pid); in rcu_preempt_check_blocked_tasks() 781 (long)READ_ONCE(rnp->gp_seq), (long)rnp->completedqs); in dump_blkd_tasks() 1339 if ((rcu_seq_completed_gp(rdp->gp_seq, in rcu_try_advance_all_cbs() [all …]
|
A D | tree.h | 44 unsigned long gp_seq; /* Track rsp->gp_seq. */ member 154 unsigned long gp_seq; /* Track rsp->gp_seq counter. */ member 310 unsigned long gp_seq; /* Grace-period sequence #. */ member
|
A D | tree_nocb.h | 203 return &rnp->nocb_gp_wq[rcu_seq_ctr(rnp->gp_seq) & 0x1]; in rcu_nocb_gp_get() 451 rcu_seq_done(&rdp->mynode->gp_seq, cur_gp_seq)) { in rcu_nocb_try_bypass() 533 rcu_seq_done(&rdp->mynode->gp_seq, cur_gp_seq)) { in __call_rcu_nocb_wake() 666 rcu_seq_done(&rnp->gp_seq, cur_gp_seq))) { in nocb_gp_wait() 729 rcu_seq_done(&rnp->gp_seq, wait_gp_seq) || in nocb_gp_wait() 807 rcu_seq_done(&rnp->gp_seq, cur_gp_seq) && in nocb_cb_wait() 1362 sprintf(bufw, "%ld", rsclp->gp_seq[RCU_WAIT_TAIL]); in show_rcu_nocb_state() 1363 sprintf(bufr, "%ld", rsclp->gp_seq[RCU_NEXT_READY_TAIL]); in show_rcu_nocb_state()
|
A D | rcutorture.c | 1858 unsigned long __maybe_unused gp_seq = 0; in rcu_torture_stats_print() local 1861 &flags, &gp_seq); in rcu_torture_stats_print() 1863 &flags, &gp_seq); in rcu_torture_stats_print() 1867 rcu_torture_writer_state, gp_seq, flags, in rcu_torture_stats_print() 2793 unsigned long gp_seq = 0; in rcu_torture_cleanup() local 2839 rcutorture_get_gp_data(cur_ops->ttype, &flags, &gp_seq); in rcu_torture_cleanup() 2842 cur_ops->name, (long)gp_seq, flags, in rcu_torture_cleanup() 2843 rcutorture_seq_diff(gp_seq, start_gp_seq)); in rcu_torture_cleanup() 2975 unsigned long gp_seq = 0; in rcu_torture_init() local 3019 start_gp_seq = gp_seq; in rcu_torture_init() [all …]
|
A D | srcutree.c | 1331 unsigned long *gp_seq) in srcutorture_get_gp_data() argument 1336 *gp_seq = rcu_seq_current(&ssp->srcu_gp_seq); in srcutorture_get_gp_data()
|
/linux/Documentation/RCU/Design/Data-Structures/ |
A D | Data-Structures.rst | 272 1 unsigned long gp_seq; 274 RCU grace periods are numbered, and the ``->gp_seq`` field contains the 278 ``->gp_seq`` are zero, then RCU is idle. Any other value in the bottom 282 There are ``->gp_seq`` fields in the ``rcu_node`` and ``rcu_data`` 383 1 unsigned long gp_seq; 392 The ``>gp_seq`` field of each ``rcu_node`` structure is updated at the 684 10 unsigned long gp_seq[RCU_CBLIST_NSEGS]; 695 grace period is current, hence the ``->gp_seq`` field. 742 The ``->gp_seq[]`` array records grace-period numbers corresponding to 829 1 unsigned long gp_seq; [all …]
|
/linux/include/linux/ |
A D | rcu_segcblist.h | 186 unsigned long gp_seq[RCU_CBLIST_NSEGS]; member
|
/linux/Documentation/RCU/Design/Memory-Ordering/ |
A D | Tree-RCU-Memory-Ordering.rst | 341 advance the ``rcu_state`` structure's ``->gp_seq`` grace-period-number 369 breadth-first, setting each ``rcu_node`` structure's ``->gp_seq`` field 379 ``rcu_state`` structure's ``->gp_seq`` field) before setting each leaf 380 ``rcu_node`` structure's ``->gp_seq`` field, each CPU's observation of 436 | beginning of the grace period (the advancing of ``->gp_seq`` from | 566 advancing all the ``->gp_seq`` fields, then it advances the 567 ``rcu_state`` structure's ``->gp_seq`` field. The ordering effects are 586 | once the ``rcu_state`` structure's ``->gp_seq`` field has been | 595 Once a given CPU's leaf ``rcu_node`` structure's ``->gp_seq`` field has
|