Lines Matching +full:cpu +full:- +full:offset

1 /* SPDX-License-Identifier: GPL-2.0 */
20 * "Start <activity>" -- Mark the start of the specified activity,
22 * "End <activity>" -- Mark the end of the specified activity.
38 __entry->s = s;
41 TP_printk("%s", __entry->s)
47 * Tracepoint for grace-period events. Takes a string identifying the
48 * RCU flavor, the grace-period number, and a string identifying the
49 * grace-period-related event as follows:
51 * "AccReadyCB": CPU acclerates new callbacks to RCU_NEXT_READY_TAIL.
52 * "AccWaitCB": CPU accelerates new callbacks to RCU_WAIT_TAIL.
55 * "cpustart": CPU first notices a grace-period start.
56 * "cpuqs": CPU passes through a quiescent state.
57 * "cpuonl": CPU comes online.
58 * "cpuofl": CPU goes offline.
59 * "cpuofl-bgp": CPU goes offline while blocking a grace period.
60 * "reqwait": GP kthread sleeps waiting for grace-period request.
67 * "cpuend": CPU first notices a grace-period end.
82 __entry->rcuname = rcuname;
83 __entry->gp_seq = (long)gp_seq;
84 __entry->gpevent = gpevent;
88 __entry->rcuname, __entry->gp_seq, __entry->gpevent)
92 * Tracepoint for future grace-period events. The caller should pull
99 * "NoGPkthread": The RCU grace-period kthread has not yet started.
103 * "Startedroot": Requested a nocb grace period based on root-node data.
104 * "Startleaf": Request a grace period based on leaf-node data.
126 __entry->rcuname = rcuname;
127 __entry->gp_seq = (long)gp_seq;
128 __entry->gp_seq_req = (long)gp_seq_req;
129 __entry->level = level;
130 __entry->grplo = grplo;
131 __entry->grphi = grphi;
132 __entry->gpevent = gpevent;
136 __entry->rcuname, (long)__entry->gp_seq, (long)__entry->gp_seq_req, __entry->level,
137 __entry->grplo, __entry->grphi, __entry->gpevent)
141 * Tracepoint for grace-period-initialization events. These are
142 * distinguished by the type of RCU, the new grace-period number, the
143 * rcu_node structure level, the starting and ending CPU covered by the
164 __entry->rcuname = rcuname;
165 __entry->gp_seq = (long)gp_seq;
166 __entry->level = level;
167 __entry->grplo = grplo;
168 __entry->grphi = grphi;
169 __entry->qsmask = qsmask;
173 __entry->rcuname, __entry->gp_seq, __entry->level,
174 __entry->grplo, __entry->grphi, __entry->qsmask)
178 * Tracepoint for expedited grace-period events. Takes a string identifying
179 * the RCU flavor, the expedited grace-period sequence number, and a string
180 * identifying the grace-period-related event as follows:
186 * "selectofl": Selected CPU partially offline.
205 __entry->rcuname = rcuname;
206 __entry->gpseq = (long)gpseq;
207 __entry->gpevent = gpevent;
211 __entry->rcuname, __entry->gpseq, __entry->gpevent)
215 * Tracepoint for expedited grace-period funnel-locking events. Takes a
217 * combining-tree level, another pair of integers identifying the lowest-
218 * and highest-numbered CPU associated with the current rcu_node structure,
219 * and a string. identifying the grace-period-related event as follows:
240 __entry->rcuname = rcuname;
241 __entry->level = level;
242 __entry->grplo = grplo;
243 __entry->grphi = grphi;
244 __entry->gpevent = gpevent;
248 __entry->rcuname, __entry->level, __entry->grplo,
249 __entry->grphi, __entry->gpevent)
254 * Tracepoint for RCU no-CBs CPU callback handoffs. This event is intended
258 * the number of the offloaded CPU are extracted. The third and final
261 * "AlreadyAwake": The to-be-awakened rcuo kthread is already awake.
262 * "Bypass": rcuo GP kthread sees non-empty ->nocb_bypass.
264 * "Check": rcuo GP kthread checking specified CPU for work.
266 * "DoWake": The to-be-awakened rcuo kthread needs to be awakened.
268 * "FirstBQ": New CB to empty ->nocb_bypass (->cblist maybe non-empty).
271 * "FirstQ": New CB to empty ->cblist (->nocb_bypass maybe non-empty).
275 * "Timer": Deferred-wake timer expired.
285 TP_PROTO(const char *rcuname, int cpu, const char *reason),
287 TP_ARGS(rcuname, cpu, reason),
291 __field(int, cpu)
296 __entry->rcuname = rcuname;
297 __entry->cpu = cpu;
298 __entry->reason = reason;
301 TP_printk("%s %d %s", __entry->rcuname, __entry->cpu, __entry->reason)
306 * Tracepoint for tasks blocking within preemptible-RCU read-side
308 * include SRCU), the grace-period number that the task is blocking
324 __entry->rcuname = rcuname;
325 __entry->gp_seq = (long)gp_seq;
326 __entry->pid = pid;
330 __entry->rcuname, __entry->gp_seq, __entry->pid)
334 * Tracepoint for tasks that blocked within a given preemptible-RCU
335 * read-side critical section exiting that critical section. Track the
351 __entry->rcuname = rcuname;
352 __entry->gp_seq = (long)gp_seq;
353 __entry->pid = pid;
356 TP_printk("%s %ld %d", __entry->rcuname, __entry->gp_seq, __entry->pid)
360 * Tracepoint for quiescent-state-reporting events. These are
361 * distinguished by the type of RCU, the grace-period number, the
362 * mask of quiescent lower-level entities, the rcu_node structure level,
363 * the starting and ending CPU covered by the rcu_node structure, and
387 __entry->rcuname = rcuname;
388 __entry->gp_seq = (long)gp_seq;
389 __entry->mask = mask;
390 __entry->qsmask = qsmask;
391 __entry->level = level;
392 __entry->grplo = grplo;
393 __entry->grphi = grphi;
394 __entry->gp_tasks = gp_tasks;
398 __entry->rcuname, __entry->gp_seq,
399 __entry->mask, __entry->qsmask, __entry->level,
400 __entry->grplo, __entry->grphi, __entry->gp_tasks)
405 * These trace events include the type of RCU, the grace-period number
406 * that was blocked by the CPU, the CPU itself, and the type of quiescent
407 * state, which can be "dti" for dyntick-idle mode or "kick" when kicking
408 * a CPU that has been in dyntick-idle mode for too long.
412 TP_PROTO(const char *rcuname, unsigned long gp_seq, int cpu, const char *qsevent),
414 TP_ARGS(rcuname, gp_seq, cpu, qsevent),
419 __field(int, cpu)
424 __entry->rcuname = rcuname;
425 __entry->gp_seq = (long)gp_seq;
426 __entry->cpu = cpu;
427 __entry->qsevent = qsevent;
431 __entry->rcuname, __entry->gp_seq,
432 __entry->cpu, __entry->qsevent)
438 * Tracepoint for dyntick-idle entry/exit events. These take 2 strings
441 * being in dyntick-idle mode.
447 * the ->dynticks counter. Note that task-related and interrupt-related
448 * events use two separate counters, and that the "++=" and "--=" events
465 __entry->polarity = polarity;
466 __entry->oldnesting = oldnesting;
467 __entry->newnesting = newnesting;
468 __entry->dynticks = dynticks;
471 TP_printk("%s %lx %lx %#3x", __entry->polarity,
472 __entry->oldnesting, __entry->newnesting,
473 __entry->dynticks & 0xfff)
497 __entry->rcuname = rcuname;
498 __entry->rhp = rhp;
499 __entry->func = rhp->func;
500 __entry->qlen = qlen;
504 __entry->rcuname, __entry->rhp, __entry->func,
505 __entry->qlen)
511 * is a pointer to the RCU callback, the third argument is the offset
512 * of the callback within the enclosing RCU-protected data structure,
518 TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset,
521 TP_ARGS(rcuname, rhp, offset, qlen),
526 __field(unsigned long, offset)
531 __entry->rcuname = rcuname;
532 __entry->rhp = rhp;
533 __entry->offset = offset;
534 __entry->qlen = qlen;
538 __entry->rcuname, __entry->rhp, __entry->offset,
539 __entry->qlen)
547 * the current RCU-callback batch limit.
562 __entry->rcuname = rcuname;
563 __entry->qlen = qlen;
564 __entry->blimit = blimit;
568 __entry->rcuname, __entry->qlen, __entry->blimit)
589 __entry->rcuname = rcuname;
590 __entry->rhp = rhp;
591 __entry->func = rhp->func;
595 __entry->rcuname, __entry->rhp, __entry->func)
602 * is the offset of the callback within the enclosing RCU-protected
607 TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset),
609 TP_ARGS(rcuname, rhp, offset),
614 __field(unsigned long, offset)
618 __entry->rcuname = rcuname;
619 __entry->rhp = rhp;
620 __entry->offset = offset;
624 __entry->rcuname, __entry->rhp, __entry->offset)
646 __entry->rcuname = rcuname;
647 __entry->nr_records = nr_records;
648 __entry->p = p;
652 __entry->rcuname, __entry->p, __entry->nr_records)
683 __entry->rcuname = rcuname;
684 __entry->callbacks_invoked = callbacks_invoked;
685 __entry->cb = cb;
686 __entry->nr = nr;
687 __entry->iit = iit;
688 __entry->risk = risk;
691 TP_printk("%s CBs-invoked=%d idle=%c%c%c%c",
692 __entry->rcuname, __entry->callbacks_invoked,
693 __entry->cb ? 'C' : '.',
694 __entry->nr ? 'S' : '.',
695 __entry->iit ? 'I' : '.',
696 __entry->risk ? 'R' : '.')
724 strncpy(__entry->rcutorturename, rcutorturename,
726 __entry->rcutorturename[RCUTORTURENAME_LEN - 1] = 0;
727 __entry->rhp = rhp;
728 __entry->secs = secs;
729 __entry->c_old = c_old;
730 __entry->c = c;
734 __entry->rcutorturename, __entry->rhp,
735 __entry->secs, __entry->c_old, __entry->c)
744 * "OfflineNoCBQ": rcu_barrier() found offline no-CBs CPU with callbacks.
745 * "OnlineQ": rcu_barrier() found online CPU with callbacks.
746 * "OnlineNQ": rcu_barrier() found online CPU, no callbacks.
747 * "IRQ": An rcu_barrier_callback() callback posted on remote CPU.
752 * The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument
757 TP_PROTO(const char *rcuname, const char *s, int cpu, int cnt, unsigned long done),
759 TP_ARGS(rcuname, s, cpu, cnt, done),
764 __field(int, cpu)
770 __entry->rcuname = rcuname;
771 __entry->s = s;
772 __entry->cpu = cpu;
773 __entry->cnt = cnt;
774 __entry->done = done;
777 TP_printk("%s %s cpu %d remaining %d # %lu",
778 __entry->rcuname, __entry->s, __entry->cpu, __entry->cnt,
779 __entry->done)