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)
439 * "StallDetected": Scheduler-tick detects other CPU's stalls.
440 * "SelfDetected": Scheduler-tick detects a current CPU's stall.
455 __entry->rcuname = rcuname;
456 __entry->msg = msg;
460 __entry->rcuname, __entry->msg)
466 * Tracepoint for dyntick-idle entry/exit events. These take 2 strings
469 * being in dyntick-idle mode.
475 * the ->dynticks counter. Note that task-related and interrupt-related
476 * events use two separate counters, and that the "++=" and "--=" events
493 __entry->polarity = polarity;
494 __entry->oldnesting = oldnesting;
495 __entry->newnesting = newnesting;
496 __entry->dynticks = dynticks;
499 TP_printk("%s %lx %lx %#3x", __entry->polarity,
500 __entry->oldnesting, __entry->newnesting,
501 __entry->dynticks & 0xfff)
525 __entry->rcuname = rcuname;
526 __entry->rhp = rhp;
527 __entry->func = rhp->func;
528 __entry->qlen = qlen;
532 __entry->rcuname, __entry->rhp, __entry->func,
533 __entry->qlen)
539 * is a pointer to the RCU callback, the third argument is the offset
540 * of the callback within the enclosing RCU-protected data structure,
546 TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset,
549 TP_ARGS(rcuname, rhp, offset, qlen),
554 __field(unsigned long, offset)
559 __entry->rcuname = rcuname;
560 __entry->rhp = rhp;
561 __entry->offset = offset;
562 __entry->qlen = qlen;
566 __entry->rcuname, __entry->rhp, __entry->offset,
567 __entry->qlen)
575 * the current RCU-callback batch limit.
590 __entry->rcuname = rcuname;
591 __entry->qlen = qlen;
592 __entry->blimit = blimit;
596 __entry->rcuname, __entry->qlen, __entry->blimit)
617 __entry->rcuname = rcuname;
618 __entry->rhp = rhp;
619 __entry->func = rhp->func;
623 __entry->rcuname, __entry->rhp, __entry->func)
630 * is the offset of the callback within the enclosing RCU-protected
635 TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset),
637 TP_ARGS(rcuname, rhp, offset),
642 __field(unsigned long, offset)
646 __entry->rcuname = rcuname;
647 __entry->rhp = rhp;
648 __entry->offset = offset;
652 __entry->rcuname, __entry->rhp, __entry->offset)
674 __entry->rcuname = rcuname;
675 __entry->nr_records = nr_records;
676 __entry->p = p;
680 __entry->rcuname, __entry->p, __entry->nr_records)
711 __entry->rcuname = rcuname;
712 __entry->callbacks_invoked = callbacks_invoked;
713 __entry->cb = cb;
714 __entry->nr = nr;
715 __entry->iit = iit;
716 __entry->risk = risk;
719 TP_printk("%s CBs-invoked=%d idle=%c%c%c%c",
720 __entry->rcuname, __entry->callbacks_invoked,
721 __entry->cb ? 'C' : '.',
722 __entry->nr ? 'S' : '.',
723 __entry->iit ? 'I' : '.',
724 __entry->risk ? 'R' : '.')
752 strncpy(__entry->rcutorturename, rcutorturename,
754 __entry->rcutorturename[RCUTORTURENAME_LEN - 1] = 0;
755 __entry->rhp = rhp;
756 __entry->secs = secs;
757 __entry->c_old = c_old;
758 __entry->c = c;
762 __entry->rcutorturename, __entry->rhp,
763 __entry->secs, __entry->c_old, __entry->c)
772 * "OfflineNoCBQ": rcu_barrier() found offline no-CBs CPU with callbacks.
773 * "OnlineQ": rcu_barrier() found online CPU with callbacks.
774 * "OnlineNQ": rcu_barrier() found online CPU, no callbacks.
775 * "IRQ": An rcu_barrier_callback() callback posted on remote CPU.
780 * The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument
785 TP_PROTO(const char *rcuname, const char *s, int cpu, int cnt, unsigned long done),
787 TP_ARGS(rcuname, s, cpu, cnt, done),
792 __field(int, cpu)
798 __entry->rcuname = rcuname;
799 __entry->s = s;
800 __entry->cpu = cpu;
801 __entry->cnt = cnt;
802 __entry->done = done;
805 TP_printk("%s %s cpu %d remaining %d # %lu",
806 __entry->rcuname, __entry->s, __entry->cpu, __entry->cnt,
807 __entry->done)