This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [PATCH] Linux Kernel Markers 0.2 for Linux 2.6.17
- From: Mathieu Desnoyers <compudj at krystal dot dyndns dot org>
- To: "Randy.Dunlap" <rdunlap at xenotime dot net>
- Cc: linux-kernel at vger dot kernel dot org, Christoph Hellwig <hch at infradead dot org>, Andrew Morton <akpm at osdl dot org>, Ingo Molnar <mingo at redhat dot com>, Greg Kroah-Hartman <gregkh at suse dot de>, Thomas Gleixner <tglx at linutronix dot de>, Douglas Niehaus <niehaus at eecs dot ku dot edu>, Tom Zanussi <zanussi at us dot ibm dot com>, Paul Mundt <lethal at linux-sh dot org>, Jes Sorensen <jes at sgi dot com>, Richard J Moore <richardj_moore at uk dot ibm dot com>, William Cohen <wcohen at redhat dot com>, "Martin J. Bligh" <mbligh at mbligh dot org>, Michel Dagenais <michel dot dagenais at polymtl dot ca>, systemtap at sources dot redhat dot com, ltt-dev at shafik dot org
- Date: Tue, 19 Sep 2006 15:13:20 -0400
- Subject: Re: [PATCH] Linux Kernel Markers 0.2 for Linux 2.6.17
- References: <20060919183447.GA16095@Krystal> <Pine.LNX.4.58.0609191140370.5184@shark.he.net>
Hi Randy,
Thanks for the comments, see below :
* Randy.Dunlap (rdunlap@xenotime.net) wrote:
> > +static inline void __mark_check_format(const char *fmt, ...)
> > + __attribute__ ((format (printf, 1, 2)));
> > +void __mark_check_format(const char *fmt, ...) { }
>
> That last line is confusing (to me). What's it for?
> Is it just an empty (inline) function definition?
> If so, why repeat the void + function name?
>
The goal of this "empty" function is just to have to compiler check the string
format consistency.
I separated the function declaration and implementation because I have seen some
compilers complain about having the two merged together.
I will change it to
static inline __attribute__ ((format (printf, 1, 2)))
void __mark_check_format(const char *fmt, ...)
{ }
And hope every compiler will like it.
The empty implementation is because the function is called (must therefore be
implemented), but I expect the compiler to completely optimize it away.
> > --- /dev/null
> > +++ b/kernel/Kconfig.marker
> > @@ -0,0 +1,75 @@
> > +# Code markers configuration
> > +
> > +menu "Marker configuration"
> > +
> > +
> > +config MARK
> > + bool "Enable MARK code markers"
> > + default y
>
> Please justify using 'y' as the default value.
>
It has to be debated. The default for markers will put a symbol for all the
markers, so that kprobe can easily attach to it. It has no impact that I am
aware of except to boost the number of symbols.
Mathieu
OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68