/linux-master/kernel/rcu/ |
H A D | tree_plugin.h | 245 WARN_ON_ONCE(rnp->completedqs == rnp->gp_seq); 291 __this_cpu_read(rcu_data.gp_seq), 340 ? rnp->gp_seq 341 : rcu_seq_snap(&rnp->gp_seq)); 522 WARN_ON_ONCE(rnp->completedqs == rnp->gp_seq && 530 rnp->gp_seq, t->pid); 551 rnp->gp_seq, 688 * invoked -before- updating this rnp's ->gp_seq. 707 rnp->gp_seq, t->pid); 787 pr_info("%s: grp: %d-%d level: %d ->gp_seq [all...] |
H A D | tree_stall.h | 86 * Note that sampling of the .gp_start and .gp_seq fields must be done 97 smp_mb(); // jiffies before .gp_seq to avoid false positives. 102 smp_mb(); // .gp_seq before second .gp_start 178 smp_mb(); // ->gp_start before ->jiffies_stall and caller's ->gp_seq. 228 rdp->rcu_iw_gp_seq = rnp->gp_seq; 448 if (rsrp->gp_seq != rdp->gp_seq) 495 ticks_value = rcu_seq_ctr(rcu_state.gp_seq - rdp->gp_seq); 502 delta = rcu_seq_ctr(rdp->mynode->gp_seq 591 print_other_cpu_stall(unsigned long gp_seq, unsigned long gps) argument [all...] |
H A D | tree.c | 89 .gp_seq = (0UL - 300UL) << RCU_SEQ_CTR_SHIFT, 230 return rcu_seq_state(rcu_seq_current(&rcu_state.gp_seq)); 515 return READ_ONCE(rcu_state.gp_seq); 542 void rcutorture_get_gp_data(int *flags, unsigned long *gp_seq) argument 545 *gp_seq = rcu_seq_current(&rcu_state.gp_seq); 751 * of the rcu_node ->gp_seq counter with respect to the rcu_data counters. 758 if (ULONG_CMP_LT(rcu_seq_current(&rdp->gp_seq) + ULONG_MAX / 4, 759 rnp->gp_seq)) 761 if (ULONG_CMP_LT(rdp->rcu_iw_gp_seq + ULONG_MAX / 4, rnp->gp_seq)) 4119 unsigned long gp_seq = get_state_synchronize_rcu(); local [all...] |
H A D | tree.h | 45 unsigned long gp_seq; /* Track rsp->gp_seq. */ member in struct:rcu_node 162 * The member gp_seq is used to ensure that all members are updated only once 163 * during the sampling period. The snapshot is taken only if this gp_seq is not 164 * equal to rdp->gp_seq. 167 unsigned long gp_seq; /* Track rdp->gp_seq counter */ member in struct:rcu_snap_record 180 unsigned long gp_seq; /* Track rsp->gp_seq counter. */ member in struct:rcu_data 185 bool gpwrap; /* Possible ->gp_seq wra [all...] |
H A D | tasks.h | 1185 void rcu_tasks_get_gp_data(int *flags, unsigned long *gp_seq) argument 1188 *gp_seq = rcu_seq_current(&rcu_tasks.tasks_gp_seq); 1371 void rcu_tasks_rude_get_gp_data(int *flags, unsigned long *gp_seq) argument 1374 *gp_seq = rcu_seq_current(&rcu_tasks_rude.tasks_gp_seq); 2038 void rcu_tasks_trace_get_gp_data(int *flags, unsigned long *gp_seq) argument 2041 *gp_seq = rcu_seq_current(&rcu_tasks_trace.tasks_gp_seq);
|
H A D | tiny.c | 35 unsigned long gp_seq; /* Grace-period counter. */ member in struct:rcu_ctrlblk 42 .gp_seq = 0 - 300UL, 61 WRITE_ONCE(rcu_ctrlblk.gp_seq, rcu_ctrlblk.gp_seq + 2); 157 WRITE_ONCE(rcu_ctrlblk.gp_seq, rcu_ctrlblk.gp_seq + 2); 218 return READ_ONCE(rcu_ctrlblk.gp_seq); 228 unsigned long gp_seq = get_state_synchronize_rcu(); local 234 return gp_seq; 245 return oldstate == RCU_GET_STATE_COMPLETED || READ_ONCE(rcu_ctrlblk.gp_seq) ! [all...] |
H A D | srcutree.c | 1238 * reading the current gp_seq that is used for advancing. This is 1277 * Acceleration can never fail because the base current gp_seq 1278 * used for acceleration is <= the value of gp_seq used for 1830 unsigned long *gp_seq) 1833 *gp_seq = rcu_seq_current(&ssp->srcu_sup->srcu_gp_seq); 1829 srcutorture_get_gp_data(struct srcu_struct *ssp, int *flags, unsigned long *gp_seq) argument
|
H A D | rcutorture.c | 384 void (*get_gp_data)(int *flags, unsigned long *gp_seq); 633 static void srcu_get_gp_data(int *flags, unsigned long *gp_seq) argument 635 srcutorture_get_gp_data(srcu_ctlp, flags, gp_seq); 2269 unsigned long __maybe_unused gp_seq = 0; local 2272 cur_ops->get_gp_data(&flags, &gp_seq); 2276 rcu_torture_writer_state, gp_seq, flags, 3342 unsigned long gp_seq = 0; local 3395 cur_ops->get_gp_data(&flags, &gp_seq); 3397 cur_ops->name, (long)gp_seq, flags, 3398 rcutorture_seq_diff(gp_seq, start_gp_se 3717 unsigned long gp_seq = 0; local [all...] |
H A D | rcu.h | 172 * Has a grace period completed since the time the old gp_seq was collected? 180 * Has a grace period started since the time the old gp_seq was collected? 525 void rcu_tasks_get_gp_data(int *flags, unsigned long *gp_seq); 530 void rcu_tasks_rude_get_gp_data(int *flags, unsigned long *gp_seq); 534 void rcu_tasks_trace_get_gp_data(int *flags, unsigned long *gp_seq); 566 void rcutorture_get_gp_data(int *flags, unsigned long *gp_seq); 574 static inline void rcutorture_get_gp_data(int *flags, unsigned long *gp_seq) argument 577 *gp_seq = 0; 595 unsigned long *gp_seq) 598 *gp_seq 594 srcutorture_get_gp_data(struct srcu_struct *sp, int *flags, unsigned long *gp_seq) argument [all...] |
H A D | tree_nocb.h | 206 return &rnp->nocb_gp_wq[rcu_seq_ctr(rnp->gp_seq) & 0x1]; 499 rcu_seq_done(&rdp->mynode->gp_seq, cur_gp_seq)) { 605 rcu_seq_done(&rdp->mynode->gp_seq, cur_gp_seq)) { 771 rcu_seq_done(&rnp->gp_seq, cur_gp_seq))) { 845 rcu_seq_done(&rnp->gp_seq, wait_gp_seq) || 968 rcu_seq_done(&rnp->gp_seq, cur_gp_seq) && 1679 sprintf(bufw, "%ld", rsclp->gp_seq[RCU_WAIT_TAIL]); 1680 sprintf(bufr, "%ld", rsclp->gp_seq[RCU_NEXT_READY_TAIL]);
|
H A D | rcu_segcblist.c | 241 BUILD_BUG_ON(RCU_NEXT_TAIL + 1 != ARRAY_SIZE(rsclp->gp_seq)); 242 BUILD_BUG_ON(ARRAY_SIZE(rsclp->tails) != ARRAY_SIZE(rsclp->gp_seq)); 327 *lp = rsclp->gp_seq[RCU_WAIT_TAIL]; 489 * Find all callbacks whose ->gp_seq numbers indicate that they 493 if (ULONG_CMP_LT(seq, rsclp->gp_seq[i])) 518 rsclp->gp_seq[j] = rsclp->gp_seq[i]; 547 * whose ->gp_seq[] completion is at or after that passed in via 551 * as their ->gp_seq[] grace-period completion sequence number. 555 ULONG_CMP_LT(rsclp->gp_seq[ [all...] |
/linux-master/include/trace/events/ |
H A D | rcu.h | 71 TP_PROTO(const char *rcuname, unsigned long gp_seq, const char *gpevent), 73 TP_ARGS(rcuname, gp_seq, gpevent), 77 __field(long, gp_seq) 83 __entry->gp_seq = (long)gp_seq; 88 __entry->rcuname, __entry->gp_seq, __entry->gpevent) 109 TP_PROTO(const char *rcuname, unsigned long gp_seq, 113 TP_ARGS(rcuname, gp_seq, gp_seq_req, level, grplo, grphi, gpevent), 117 __field(long, gp_seq) 127 __entry->gp_seq [all...] |
/linux-master/tools/testing/selftests/bpf/progs/ |
H A D | rcu_tasks_trace_gp.c | 13 long gp_seq; variable 32 __sync_add_and_fetch(&gp_seq, 1);
|
/linux-master/tools/testing/selftests/bpf/prog_tests/ |
H A D | map_kptr.c | 121 long gp_seq = READ_ONCE(rcu->bss->gp_seq); local 129 while (gp_seq == READ_ONCE(rcu->bss->gp_seq))
|
/linux-master/include/linux/ |
H A D | rcu_segcblist.h | 53 * The ->gp_seq[] array contains the grace-period number at which the 209 unsigned long gp_seq[RCU_CBLIST_NSEGS]; member in struct:rcu_segcblist
|