Difference between revisions of "Kernel module binary compatibility with debug features"

From eLinux.org
Jump to: navigation, search
Line 30: Line 30:
 
that configuration. This is mainly targetted at things like structure extensions
 
that configuration. This is mainly targetted at things like structure extensions
 
in the debug case, and having the kernel core detect multiple structure formats
 
in the debug case, and having the kernel core detect multiple structure formats
at runtime, and deal with them correctly.
+
at runtime, and deal with them correctly.  It might also involve making sure that
 +
function calls which bypassed the debug infrastructure (such as a spinlock debug
 +
wrappers or a trace wrappers) by the original compiled module continued to work correctly.
  
 
== Related work ==
 
== Related work ==
 
+
* Module symbol versioning may be related to this.
 +
** See section 6 of: https://www.kernel.org/doc/Documentation/kbuild/modules.txt
  
 
== Scope ==
 
== Scope ==
 +
Unknown
  
 
== Contractor Candidates ==
 
== Contractor Candidates ==
List possible contractors for this work (can be yourself)
+
None Yet.
  
 
== Comments ==
 
== Comments ==
(remove this line and leave this section blank in your submission)
 
  
 
[[Category:Project proposals 2013]]
 
[[Category:Project proposals 2013]]

Revision as of 18:39, 1 October 2013

Summary
Kernel module binary compatibility with debug features
Proposer
Tim Bird, Sony Mobile

Description

Sometimes, the workflow for embedded systems include obtaining kernel modules from 3rd party vendors or other software teams. In certain situations, it can be difficult to re-compile and re-install these 3rd party modules, even though the kernel on a system can be re-configured, rebuilt and re-installed.

This feature proposes to isolate the kernel module interface from changes in certain kernel debug features, so that turning on those feature will not create binary incompatibility with a newly configured and deployed kernel.

For example, if a kernel is compiled with CONFIG_DEBUG_SPINLOCK, then modules which use spinlocks may not be able to be supported without being re-compiled with the same debug option. It is believed that this same restriction applies to the following kernel debug features:

  • ftrace
  • perf
  • kprobe
  • SLUB_DEBUG
  • DEBUG_SPINLOCK

It would be nice to be able to enable and disable debug features in the kernel without changing the kernel's module binary compatibility.

This would involve somehow insulating the kernel from problems when it was configured with a particular debug feature, but a module does not support that configuration. This is mainly targetted at things like structure extensions in the debug case, and having the kernel core detect multiple structure formats at runtime, and deal with them correctly. It might also involve making sure that function calls which bypassed the debug infrastructure (such as a spinlock debug wrappers or a trace wrappers) by the original compiled module continued to work correctly.

Related work

Scope

Unknown

Contractor Candidates

None Yet.

Comments