Re: [PATCH 2/2] convert to syscall tracepoints

From: Ingo Molnar
Date: Mon Jun 08 2009 - 16:41:28 EST



* Jason Baron <jbaron@xxxxxxxxxx> wrote:

> +#ifdef __NR_time
> +trace_event_syscall(1, time, time_t __user *, tloc);
> +#endif
> +
> +#ifdef __NR_stime
> +trace_event_syscall(1, stime, time_t __user *, tptr);
> +#endif
> +
> +#ifdef __NR_gettimeofday
> +trace_event_syscall(2, gettimeofday, struct timeval __user *, tv, struct timezone __user *, tz);
> +#endif

This could be reduced to a single line: just add a Kconfig entry
(say TRACE_SYSCALL_TRACEPOINTS) wether an arch supports syscall
tracepoints, enable it on a sane arch, make sure it has all the
syscalls and list them ...

As more architectures turn on SYSCALL_TRACEPOINTS, they'll have to
resolve any deviations in syscall entry points. Ideally we'd have
one generic table that covers 95% of all syscalls, and the remaining
5% in some architecture specific #ifdef section.

But, more generally, i'm not at all convinced that we need _any_ of
this enumeration. Look how much the above lines duplicate
DEFINE_SYSCALL macros. Why arent those macros re-used?

We dont need too smart pretty-printing i think - we only want to
know the field size and the field name - nothing else. Duplicating
all those definitions looks outright wrong to me. Do we really,
really, really have to do it?

Ingo
--
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/