diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2016-01-28 23:25:09 -0500 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2016-03-31 16:34:05 -0400 |
commit | e087816db9423fdc49302d3cd7ec01e487477a71 (patch) | |
tree | 162a835c41c8ddfbd5bf43205560a6796770fba0 | |
parent | 26ece8ef6eca97f19eb5ad5186b8c1a29ab25d76 (diff) |
rcu: Add event tracing definitions for expedited grace periods
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-rw-r--r-- | include/trace/events/rcu.h | 78 |
1 files changed, 76 insertions, 2 deletions
diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h index ef72c4aada56..aacc172eba7e 100644 --- a/include/trace/events/rcu.h +++ b/include/trace/events/rcu.h | |||
@@ -172,6 +172,76 @@ TRACE_EVENT(rcu_grace_period_init, | |||
172 | ); | 172 | ); |
173 | 173 | ||
174 | /* | 174 | /* |
175 | * Tracepoint for expedited grace-period events. Takes a string identifying | ||
176 | * the RCU flavor, the expedited grace-period sequence number, and a string | ||
177 | * identifying the grace-period-related event as follows: | ||
178 | * | ||
179 | * "snap": Captured snapshot of expedited grace period sequence number. | ||
180 | * "start": Started a real expedited grace period. | ||
181 | * "end": Ended a real expedited grace period. | ||
182 | * "done": Someone else did the expedited grace period for us. | ||
183 | */ | ||
184 | TRACE_EVENT(rcu_exp_grace_period, | ||
185 | |||
186 | TP_PROTO(const char *rcuname, unsigned long gpseq, const char *gpevent), | ||
187 | |||
188 | TP_ARGS(rcuname, gpseq, gpevent), | ||
189 | |||
190 | TP_STRUCT__entry( | ||
191 | __field(const char *, rcuname) | ||
192 | __field(unsigned long, gpseq) | ||
193 | __field(const char *, gpevent) | ||
194 | ), | ||
195 | |||
196 | TP_fast_assign( | ||
197 | __entry->rcuname = rcuname; | ||
198 | __entry->gpseq = gpseq; | ||
199 | __entry->gpevent = gpevent; | ||
200 | ), | ||
201 | |||
202 | TP_printk("%s %lu %s", | ||
203 | __entry->rcuname, __entry->gpseq, __entry->gpevent) | ||
204 | ); | ||
205 | |||
206 | /* | ||
207 | * Tracepoint for expedited grace-period funnel-locking events. Takes a | ||
208 | * string identifying the RCU flavor, an integer identifying the rcu_node | ||
209 | * combining-tree level, another pair of integers identifying the lowest- | ||
210 | * and highest-numbered CPU associated with the current rcu_node structure, | ||
211 | * and a string. identifying the grace-period-related event as follows: | ||
212 | * | ||
213 | * "acq": Acquired a level of funnel lock | ||
214 | * "rel": Released a level of funnel lock | ||
215 | */ | ||
216 | TRACE_EVENT(rcu_exp_funnel_lock, | ||
217 | |||
218 | TP_PROTO(const char *rcuname, u8 level, int grplo, int grphi, | ||
219 | const char *gpevent), | ||
220 | |||
221 | TP_ARGS(rcuname, level, grplo, grphi, gpevent), | ||
222 | |||
223 | TP_STRUCT__entry( | ||
224 | __field(const char *, rcuname) | ||
225 | __field(u8, level) | ||
226 | __field(int, grplo) | ||
227 | __field(int, grphi) | ||
228 | __field(const char *, gpevent) | ||
229 | ), | ||
230 | |||
231 | TP_fast_assign( | ||
232 | __entry->rcuname = rcuname; | ||
233 | __entry->level = level; | ||
234 | __entry->grplo = grplo; | ||
235 | __entry->grphi = grphi; | ||
236 | __entry->gpevent = gpevent; | ||
237 | ), | ||
238 | |||
239 | TP_printk("%s %d %d %d %s", | ||
240 | __entry->rcuname, __entry->level, __entry->grplo, | ||
241 | __entry->grphi, __entry->gpevent) | ||
242 | ); | ||
243 | |||
244 | /* | ||
175 | * Tracepoint for RCU no-CBs CPU callback handoffs. This event is intended | 245 | * Tracepoint for RCU no-CBs CPU callback handoffs. This event is intended |
176 | * to assist debugging of these handoffs. | 246 | * to assist debugging of these handoffs. |
177 | * | 247 | * |
@@ -704,11 +774,15 @@ TRACE_EVENT(rcu_barrier, | |||
704 | #else /* #ifdef CONFIG_RCU_TRACE */ | 774 | #else /* #ifdef CONFIG_RCU_TRACE */ |
705 | 775 | ||
706 | #define trace_rcu_grace_period(rcuname, gpnum, gpevent) do { } while (0) | 776 | #define trace_rcu_grace_period(rcuname, gpnum, gpevent) do { } while (0) |
707 | #define trace_rcu_grace_period_init(rcuname, gpnum, level, grplo, grphi, \ | ||
708 | qsmask) do { } while (0) | ||
709 | #define trace_rcu_future_grace_period(rcuname, gpnum, completed, c, \ | 777 | #define trace_rcu_future_grace_period(rcuname, gpnum, completed, c, \ |
710 | level, grplo, grphi, event) \ | 778 | level, grplo, grphi, event) \ |
711 | do { } while (0) | 779 | do { } while (0) |
780 | #define trace_rcu_grace_period_init(rcuname, gpnum, level, grplo, grphi, \ | ||
781 | qsmask) do { } while (0) | ||
782 | #define trace_rcu_exp_grace_period(rcuname, gqseq, gpevent) \ | ||
783 | do { } while (0) | ||
784 | #define trace_rcu_exp_funnel_lock(rcuname, level, grplo, grphi, gpevent) \ | ||
785 | do { } while (0) | ||
712 | #define trace_rcu_nocb_wake(rcuname, cpu, reason) do { } while (0) | 786 | #define trace_rcu_nocb_wake(rcuname, cpu, reason) do { } while (0) |
713 | #define trace_rcu_preempt_task(rcuname, pid, gpnum) do { } while (0) | 787 | #define trace_rcu_preempt_task(rcuname, pid, gpnum) do { } while (0) |
714 | #define trace_rcu_unlock_preempted_task(rcuname, gpnum, pid) do { } while (0) | 788 | #define trace_rcu_unlock_preempted_task(rcuname, gpnum, pid) do { } while (0) |