Re: [PATCH -v2] tracing: lockdep tracepoints

From: Peter Zijlstra
Date: Wed Mar 04 2009 - 06:58:25 EST


On Wed, 2009-03-04 at 12:43 +0100, Ingo Molnar wrote:
>
> > +TRACE_FORMAT(lock_contended,
> > + TPPROTO(struct lockdep_map *lock, unsigned long ip),
> > + TPARGS(lock, ip),
> > + TPFMT("%s", lock->name)
> > + );
>
> Would it be possible to use the C syntax tracepoints perhaps?
> They are bigger:
>
> TRACE_EVENT_FORMAT(sched_switch,
> TPPROTO(struct rq *rq, struct task_struct *prev,
> struct task_struct *next),
> TPARGS(rq, prev, next),
> TPFMT("task %s:%d ==> %s:%d",
> prev->comm, prev->pid, next->comm, next->pid),
> TRACE_STRUCT(
> TRACE_FIELD(pid_t, prev_pid, prev->pid)
> TRACE_FIELD(int, prev_prio, prev->prio)
> TRACE_FIELD_SPECIAL(char next_comm[TASK_COMM_LEN],
> next_comm,
> TPCMD(memcpy(TRACE_ENTRY->next_comm,
> next->comm,
> TASK_COMM_LEN)))
> TRACE_FIELD(pid_t, next_pid, next->pid)
> TRACE_FIELD(int, next_prio, next->prio)
> ),
> TPRAWFMT("prev %d:%d ==> next %s:%d:%d")
> );

I'm not quite sure how to do strings with those. The IRQ tracepoints
cheat and omit the string, and the sched tracepoints cheat and use this
static sized comm array.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/