Re: Kernel marker has no performance impact on ia64.

Masami Hiramatsu
2008-06-13T18:04:21Z

Hi Takashi,

Thank you for comment.
Takashi Nishiie wrote:
> 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.

It's not so easy for systemtap... for example, if a marker pass 'char *',
how can we do it? it might have to record as a string, or might have to
record as a pointer. Obviously, printf-style information includes a kind of
'semantic' information. So, I think the 'lookup table' is good.

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

Sure, however, LTTng can have original "format information" itself.

> 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.

I think those 'semantic' type information (which informs you what
is this value and how this value should be recorded) should be
defined by each tracer, because what information they want to
extract from arguments are strongly depends on their use cases.

Actually, that requires tracers to pay maintenance costs, but
it's not so big if the "regular" marking point is enough stable.

Regards,

>
> Thank you,
>
> --
> Takashi Nishiie
>
>
>

--
Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division

e-mail: mhiramat@redhat.com