Re: [patch 2/2] Linux Kernel Markers - Create modpost file

From: Mathieu Desnoyers
Date: Tue Dec 04 2007 - 14:15:43 EST


* Andrew Morton (akpm@xxxxxxxxxxxxxxxxxxxx) wrote:
> On Tue, 04 Dec 2007 13:18:47 -0500
> Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx> wrote:
>
> > This adds some new magic in the MODPOST phase for CONFIG_MARKERS.
> > Analogous to the Module.symvers file, the build will now write a
> > Module.markers file when CONFIG_MARKERS=y is set. This file lists
> > the name, defining module, and format string of each marker,
> > separated by \t characters. This simple text file can be used by
> > offline build procedures for instrumentation code, analogous to
> > how System.map and Module.symvers can be useful to have for
> > kernels other than the one you are running right now.
> >
> > The strings are made easy to extract by having the __trace_mark macro
> > define the name and format together in a single array called __mstrtab_*
> > in the __markers_strings section. This is straightforward and reliable
> > as long as the marker structs are always defined by this macro. It is
> > an unreasonable amount of hairy work to extract the string pointers from
> > the __markers section structs, which entails handling a relocation type
> > for every machine under the sun.
> >
> > Mathieu :
> > - Ran through checkpatch.pl
> >
> > ...
> >
> > --- linux-2.6-lttng.orig/scripts/mod/modpost.c 2007-11-21 20:54:17.000000000 -0500
> > +++ linux-2.6-lttng/scripts/mod/modpost.c 2007-11-21 21:19:19.000000000 -0500
> > @@ -11,6 +11,8 @@
> > * Usage: modpost vmlinux module1.o module2.o ...
> > */
> >
> > +#define _GNU_SOURCE
>
> Why was the mystery addition of _GNU_SOURCE made?
>

I think Roland needed it for asprintf().

> > +#include <stdio.h>
> > #include <ctype.h>
> > #include "modpost.h"
> > #include "../../include/linux/license.h"
> > @@ -424,6 +426,8 @@ static int parse_elf(struct elf_info *in
>
> These two patches are unfortunately large, intrusive and tricky to be
> turning up in -rc4.
>

Yup. What I would really like is to, at least, get the API stabilised
for 2.6.24. It that means extracting the API changes from the first
patch, I could do it. Then we would have plenty of time to discuss the
multiple probes support.

API changes :
- Remove marker arm/disarm
- Probe callback now takes a va_list * instead of a ... argument.

Does it sound like a good idea ?

--
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--
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/