aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2016-01-28 23:25:09 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2016-03-31 16:34:05 -0400
commite087816db9423fdc49302d3cd7ec01e487477a71 (patch)
tree162a835c41c8ddfbd5bf43205560a6796770fba0
parent26ece8ef6eca97f19eb5ad5186b8c1a29ab25d76 (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.h78
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 */
184TRACE_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 */
216TRACE_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)