diff options
| author | Puranjay Mohan <puranjay@kernel.org> | 2026-06-24 06:23:46 -0700 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@kernel.org> | 2026-07-23 10:46:09 -0700 |
| commit | fb5c815f12b5c17ed6c8c5879b3acb1407e5bac4 (patch) | |
| tree | 75a60c1174a4b6a1c4a16dd1796dd1814b147ecd /include/trace | |
| parent | 97b4c6b933f28a34f549c2e87852c83eede3ccc0 (diff) | |
| download | linux-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.h | 5 |
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) " |
