Re: [PATCH 3/16] LTTng 0.6.36 for 2.6.18 : Linux Kernel Markers
From: Mathieu Desnoyers
Date: Mon Nov 27 2006 - 22:00:16 EST
* Frank Ch. Eigler (fche@xxxxxxxxxx) 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.
Regards,
Mathieu
OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg
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/