RE: Kernel marker has no performance impact on ia64.

Takashi Nishiie
2008-06-13T04:19:33Z

Hi,Hiramatsu

Hiramatsu wrote:

>I think if someone changes the trace point in the kernel,
>Module.markers is also changed.
>
>ex.)
> DEFINE_TRACE(sched_switch, (struct task_struct * next, struct task_struct
* prev),
> next, prev);
>
>if someone changes above to below,
>
> DEFINE_TRACE(sched_switch, (int prev_pid, int next_pid), prev_pid,
next_pid);
>
>Module.markers also change like
>
> sched_switch vmlinux (struct task_struct * next, struct task_struct *
prev)
>
>to
>
> sched_switch vmlinux (int prev_pid, int next_pid)
>
>In this case, the below entry never matches to new Module.markers.
>
>"sched_switch(struct task_struct * next, struct task_struct * prev)":"next
%p prev %p"
>
>Thus, we can find an error.
>However, of cause, we should take care of the task_struct changes.

The one expected of markers with SystemTap and LTTng is only
different the foundation of this discussion.

SystemTap:
Because the output format is basically defined with user script in
systemtap script, "format information" is unnecessary. It can do
nothing but guess from "format information" in present markers though
the type of the argument is indispensable for SystemTap on the other
hand. If the type of an accurate argument is understood, correct
processing can be executed. Moreover, being able to refer to the
member of the structure if the argument is a pointer of the structure
becomes possible, and it is convenient.

LTTng:
Because the output format is not originally defined in LTTng, "format
information" is indispensable.

I think that I only have to add the item that shows the type of an
accurate argument if the format of "Module.markers" is changed.

Thank you,

--
Takashi Nishiie