This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [PATCH 3/16] LTTng 0.6.36 for 2.6.18 : Linux Kernel Markers
- From: Christoph Hellwig <hch at infradead dot org>
- To: Mathieu Desnoyers <compudj at krystal dot dyndns dot org>
- Cc: "Frank Ch. Eigler" <fche at redhat dot com>, 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>, Tom Zanussi <zanussi at us dot ibm dot com>, Karim Yaghmour <karim at opersys 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>, "Martin J. Bligh" <mbligh at mbligh dot org>, Michel Dagenais <michel dot dagenais at polymtl dot ca>, Douglas Niehaus <niehaus at eecs dot ku dot edu>, ltt-dev at shafik dot org, systemtap at sources dot redhat dot com
- Date: Tue, 28 Nov 2006 05:40:36 +0000
- Subject: Re: [PATCH 3/16] LTTng 0.6.36 for 2.6.18 : Linux Kernel Markers
- References: <20061124215401.GD25048@Krystal> <y0mu00kpawa.fsf@ton.toronto.redhat.com> <20061128023349.GA2964@Krystal>
On Mon, Nov 27, 2006 at 09:33:50PM -0500, Mathieu Desnoyers wrote:
> * Frank Ch. Eigler (fche@redhat.com) wrote:
> > One question:
> >
> > > [...]
> > > + /* Markers in modules. */
> > > + list_for_each_entry(mod, &modules, list) {
> > > + if (mod->license_gplok)
> > > + found += marker_set_probe_range(name, format, probe,
> > > + mod->markers, mod->markers+mod->num_markers);
> > > + }
> > > [...]
> > > +EXPORT_SYMBOL(marker_set_probe);
> >
> > Are you sure the license_gplok check is necessary here? We should
> > consider encouraging non-gpl module writers to instrument their code,
> > to give users a slightly better chance of debugging problems.
> >
>
> Hi Frank,
>
> I was kind of expecting this question. Well, it turns out that my markers module
> modifies the struct module in module.h to add a few fields. Some drivers that I
> won't name (ok, ok I will : clearcase) have the funny habit of distributing
> their kernel modules as ".ko" files instead of sending a proper ".o" and later
> link it against a wrapper.
>
> The result is, I must say, quite bad : when I want to add a probe, I iterate on
> each modules, verifying if there are any markers in the object. Things gets
> really messy when the structure is corrupted.
>
> The simplest way to work around this non-GPL problem is to completely disable
> access to the marker infrastructure to non-GPL modules. I am not against
> instrumentation of binary-only modules, but I don't think it is kernel
> developer's job to support their broken binary blob distribution.
>
> I thought that we might use the crc checksum as another criterion. As long as
> the machines do not crash when adding markers when such modules are loaded.
Please don't add hacks like that for non-GPL modules. But neither
should we export any tracing functionality for them. They;re not the
kind of people we want to help at all, and Frank just shows once again that
he should rather stay away from kernel stuff and keep on writing C++.