summaryrefslogtreecommitdiff
path: root/include/trace
diff options
context:
space:
mode:
authorPuranjay Mohan <puranjay@kernel.org>2026-06-24 06:23:46 -0700
committerPaul E. McKenney <paulmck@kernel.org>2026-07-23 10:46:09 -0700
commitfb5c815f12b5c17ed6c8c5879b3acb1407e5bac4 (patch)
tree75a60c1174a4b6a1c4a16dd1796dd1814b147ecd /include/trace
parent97b4c6b933f28a34f549c2e87852c83eede3ccc0 (diff)
downloadlinux-next-fb5c815f12b5c17ed6c8c5879b3acb1407e5bac4.tar.gz
linux-next-fb5c815f12b5c17ed6c8c5879b3acb1407e5bac4.zip
rcu/segcblist: Track segment grace periods with struct rcu_gp_seq
Change the type of the per-segment ->gp_seq[] array in struct rcu_segcblist from unsigned long to struct rcu_gp_seq. This prepares the callback tracking infrastructure to record both normal and expedited grace periods per segment. The rcu_segcblist_nextgp(), rcu_segcblist_advance(), and rcu_segcblist_accelerate() helpers now take a struct rcu_gp_seq * instead of an unsigned long, and all callers use the .norm field for comparisons and assignments. The SRCU and Tasks RCU wrappers construct a struct rcu_gp_seq with only .norm set and forward to the core helpers. No functional change: only the .norm field is used. Signed-off-by: Puranjay Mohan <puranjay@kernel.org> Reviewed-by: Frederic Weisbecker <frederic@kernel.org> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/rcu.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h
index 5fbdabe3faea..c84309c38834 100644
--- a/include/trace/events/rcu.h
+++ b/include/trace/events/rcu.h
@@ -547,10 +547,11 @@ TRACE_EVENT_RCU(rcu_segcb_stats,
),
TP_fast_assign(
+ int i;
__entry->ctx = ctx;
memcpy(__entry->seglen, rs->seglen, RCU_CBLIST_NSEGS * sizeof(long));
- memcpy(__entry->gp_seq, rs->gp_seq, RCU_CBLIST_NSEGS * sizeof(unsigned long));
-
+ for (i = 0; i < RCU_CBLIST_NSEGS; i++)
+ __entry->gp_seq[i] = rs->gp_seq[i].norm;
),
TP_printk("%s seglen: (DONE=%ld, WAIT=%ld, NEXT_READY=%ld, NEXT=%ld) "