Re: [PATCH 2/2 v2] tracing/syscalls: support for syscalls tracing on x86-64

Ingo Molnar
2009-03-15T05:31:23Z

* Andrew Morton <akpm@linux-foundation.org> wrote:

> On Fri, 13 Mar 2009 15:42:12 +0100 Frederic Weisbecker <fweisbec@gmail.com> wrote:
>
> > +static struct syscall_metadata *find_syscall_meta(unsigned long *syscall)
> > +{
> > + struct syscall_metadata *start;
> > + struct syscall_metadata *stop;
> > + char str[KSYM_SYMBOL_LEN];
> > +
> > +
> > + start = (struct syscall_metadata *)__start_syscalls_metadata;
> > + stop = (struct syscall_metadata *)__stop_syscalls_metadata;
> > + kallsyms_lookup((unsigned long) syscall, NULL, NULL, NULL, str);
> > +
> > + for ( ; start < stop; start++) {
> > + if (start->name && !strcmp(start->name, str))
> > + return start;
> > + }
> > + return NULL;
> > +}
>
> afacit this feature can be enabled when CONFIG_KALLSYMS=n.
> Does that make sense?

It does not make much sense - the function will return NULL and
we wont do any tracing. Frederic: FTRACE_SYSCALLS should either
select KALLSYMS in kernel/trace/Kconfig, like the STACK_TRACER
and FUNCTION_TRACER already does. Or perhaps, for really
puritane tracing, we should emit simplified, non-symbolic trace
data in the !KALLSYMS case.

Ingo