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 accelerates 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.
286 TP_PROTO(const char *rcuname, int cpu, const char *reason),
288 TP_ARGS(rcuname, cpu, reason),
292 __field(int, cpu)
297 __entry->rcuname = rcuname;
298 __entry->cpu = cpu;
299 __entry->reason = reason;
302 TP_printk("%s %d %s", __entry->rcuname, __entry->cpu, __entry->reason)
307 * Tracepoint for tasks blocking within preemptible-RCU read-side
309 * include SRCU), the grace-period number that the task is blocking
325 __entry->rcuname = rcuname;
326 __entry->gp_seq = (long)gp_seq;
327 __entry->pid = pid;
331 __entry->rcuname, __entry->gp_seq, __entry->pid)
335 * Tracepoint for tasks that blocked within a given preemptible-RCU
336 * read-side critical section exiting that critical section. Track the
352 __entry->rcuname = rcuname;
353 __entry->gp_seq = (long)gp_seq;
354 __entry->pid = pid;
357 TP_printk("%s %ld %d", __entry->rcuname, __entry->gp_seq, __entry->pid)
361 * Tracepoint for quiescent-state-reporting events. These are
362 * distinguished by the type of RCU, the grace-period number, the
363 * mask of quiescent lower-level entities, the rcu_node structure level,
364 * the starting and ending CPU covered by the rcu_node structure, and
388 __entry->rcuname = rcuname;
389 __entry->gp_seq = (long)gp_seq;
390 __entry->mask = mask;
391 __entry->qsmask = qsmask;
392 __entry->level = level;
393 __entry->grplo = grplo;
394 __entry->grphi = grphi;
395 __entry->gp_tasks = gp_tasks;
399 __entry->rcuname, __entry->gp_seq,
400 __entry->mask, __entry->qsmask, __entry->level,
401 __entry->grplo, __entry->grphi, __entry->gp_tasks)
406 * These trace events include the type of RCU, the grace-period number
407 * that was blocked by the CPU, the CPU itself, and the type of quiescent
408 * state, which can be "dti" for dyntick-idle mode or "kick" when kicking
409 * a CPU that has been in dyntick-idle mode for too long.
413 TP_PROTO(const char *rcuname, unsigned long gp_seq, int cpu, const char *qsevent),
415 TP_ARGS(rcuname, gp_seq, cpu, qsevent),
420 __field(int, cpu)
425 __entry->rcuname = rcuname;
426 __entry->gp_seq = (long)gp_seq;
427 __entry->cpu = cpu;
428 __entry->qsevent = qsevent;
432 __entry->rcuname, __entry->gp_seq,
433 __entry->cpu, __entry->qsevent)
440 * "StallDetected": Scheduler-tick detects other CPU's stalls.
441 * "SelfDetected": Scheduler-tick detects a current CPU's stall.
456 __entry->rcuname = rcuname;
457 __entry->msg = msg;
461 __entry->rcuname, __entry->msg)
467 * Tracepoint for dyntick-idle entry/exit events. These take 2 strings
476 * the RCU_WATCHING counter. Note that task-related and interrupt-related
477 * events use two separate counters, and that the "++=" and "--=" events
494 __entry->polarity = polarity;
495 __entry->oldnesting = oldnesting;
496 __entry->newnesting = newnesting;
497 __entry->counter = counter;
500 TP_printk("%s %lx %lx %#3x", __entry->polarity,
501 __entry->oldnesting, __entry->newnesting,
502 __entry->counter & 0xfff)
526 __entry->rcuname = rcuname;
527 __entry->rhp = rhp;
528 __entry->func = rhp->func;
529 __entry->qlen = qlen;
533 __entry->rcuname, __entry->rhp, __entry->func,
534 __entry->qlen)
550 __entry->ctx = ctx;
551 memcpy(__entry->seglen, rs->seglen, RCU_CBLIST_NSEGS * sizeof(long));
552 memcpy(__entry->gp_seq, rs->gp_seq, RCU_CBLIST_NSEGS * sizeof(unsigned long));
557 "gp_seq: (DONE=%lu, WAIT=%lu, NEXT_READY=%lu, NEXT=%lu)", __entry->ctx,
558 __entry->seglen[0], __entry->seglen[1], __entry->seglen[2], __entry->seglen[3],
559 __entry->gp_seq[0], __entry->gp_seq[1], __entry->gp_seq[2], __entry->gp_seq[3])
566 * is a pointer to the RCU callback, the third argument is the offset
567 * of the callback within the enclosing RCU-protected data structure,
573 TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset,
576 TP_ARGS(rcuname, rhp, offset, qlen),
581 __field(unsigned long, offset)
586 __entry->rcuname = rcuname;
587 __entry->rhp = rhp;
588 __entry->offset = offset;
589 __entry->qlen = qlen;
593 __entry->rcuname, __entry->rhp, __entry->offset,
594 __entry->qlen)
602 * the current RCU-callback batch limit.
617 __entry->rcuname = rcuname;
618 __entry->qlen = qlen;
619 __entry->blimit = blimit;
623 __entry->rcuname, __entry->qlen, __entry->blimit)
644 __entry->rcuname = rcuname;
645 __entry->rhp = rhp;
646 __entry->func = rhp->func;
650 __entry->rcuname, __entry->rhp, __entry->func)
657 * is the offset of the callback within the enclosing RCU-protected
662 TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset),
664 TP_ARGS(rcuname, rhp, offset),
669 __field(unsigned long, offset)
673 __entry->rcuname = rcuname;
674 __entry->rhp = rhp;
675 __entry->offset = offset;
679 __entry->rcuname, __entry->rhp, __entry->offset)
701 __entry->rcuname = rcuname;
702 __entry->nr_records = nr_records;
703 __entry->p = p;
707 __entry->rcuname, __entry->p, __entry->nr_records)
728 __entry->rcuname = rcuname;
729 __entry->rhp = rhp;
730 __entry->srevent = srevent;
734 __entry->rcuname, __entry->rhp, __entry->srevent)
765 __entry->rcuname = rcuname;
766 __entry->callbacks_invoked = callbacks_invoked;
767 __entry->cb = cb;
768 __entry->nr = nr;
769 __entry->iit = iit;
770 __entry->risk = risk;
773 TP_printk("%s CBs-invoked=%d idle=%c%c%c%c",
774 __entry->rcuname, __entry->callbacks_invoked,
775 __entry->cb ? 'C' : '.',
776 __entry->nr ? 'S' : '.',
777 __entry->iit ? 'I' : '.',
778 __entry->risk ? 'R' : '.')
806 strscpy(__entry->rcutorturename, rcutorturename, RCUTORTURENAME_LEN);
807 __entry->rhp = rhp;
808 __entry->secs = secs;
809 __entry->c_old = c_old;
810 __entry->c = c;
814 __entry->rcutorturename, __entry->rhp,
815 __entry->secs, __entry->c_old, __entry->c)
826 * "IRQ": An rcu_barrier_callback() callback posted on remote CPU.
829 * "NQ": rcu_barrier() found a CPU with no callbacks.
830 * "OnlineQ": rcu_barrier() found online CPU with callbacks.
831 * The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument
836 TP_PROTO(const char *rcuname, const char *s, int cpu, int cnt, unsigned long done),
838 TP_ARGS(rcuname, s, cpu, cnt, done),
843 __field(int, cpu)
849 __entry->rcuname = rcuname;
850 __entry->s = s;
851 __entry->cpu = cpu;
852 __entry->cnt = cnt;
853 __entry->done = done;
856 TP_printk("%s %s cpu %d remaining %d # %lu",
857 __entry->rcuname, __entry->s, __entry->cpu, __entry->cnt,
858 __entry->done)