Skip to content
Eugene A. Shatokhin edited this page Aug 17, 2016 · 7 revisions

KEDR is a framework for dynamic (runtime and post factum) analysis of Linux kernel modules, including device drivers, file system modules, etc. The components of KEDR operate on a kernel module chosen by the user. They can intercept the function calls made by the module and, based on that, detect memory leaks, simulate resource shortage in the system as well as other uncommon situations, save the information about the function calls to a kind of "trace" for future analysis by the user-space tools.

For the present, KEDR is provided for 32- and 64-bit x86 systems.

KEDR can be used in the development of kernel modules (as a component of QA system) as well as when analyzing the kernel failures on a user's system (technical support). Certification systems and other automated verification systems for kernel-mode software can also benefit from it.


Downloads

Latest release: KEDR 0.6

You can also use the latest code from the repository. Bug fixes get there first, as well as support for newer kernel versions.

Finding Data Races

If you are looking for a tool to find data races in the Linux kernel, KernelStrider might be helpful. The source code is here.

It is planned to include it into some future version of KEDR, but, for now, it is a separate tool.

More Info

Here is a step-by-step tutorial that allows to quickly learn how to use KEDR to monitor function calls, simulate memory allocation failures and detect memory leaks.

If you have questions, suggestions, proposals, etc., concerning KEDR framework, feel free to join "kedr-discuss" Google Group and write us a message. Note that only the members of that group may post messages there.

Detailed description of the framework is available in the Reference Manual. The slides from the presentation about KEDR could be helpful too.

The following information may also be useful: