KernelNewbies:

About me

I am an assistant professor at Grenoble - Alps University. I am involved in the Coccinelle project and I develop the Herodotos tool which allows to track faults in the Linux kernel across version.

Overview

The Coccinelle project is briefly described at OPWIntro. Its goal is extend the result about faults in Linux to recent version and facilitate the integration of future versions. A prerequisite is knowing Coccinelle, how a SmPL script is written, how spatch works. For a Coccinelle tutorial, please refer to JuliaLawall page and Coccinelle website. For the following steps, you will need to use Herodotos.

Herodotos

Herodotos uses a configuration file. The latter describes the project to study (e.g. the Linux kernel) and the patterns to study (i.e. the SmPL scripts). The SmPL scripts used support a Org mode output. Herodotos will help to automatically apply the scripts to a set of Linux versions, and manipulated the org files produced for each pair of Linux version and SmPL script.

SmPL scripts

Once you're get familiar with Coccinelle and Herodotos. You can read and run the semantic matches we keep at http://faultlinux.lip6.fr/patterns/ They use python code snippet to produce Org style reports (cocci.main calls in the .cocci files).

Org files

Herodotos will correlate the fault reports from successive Linux versions to reconstruct the lifespan of every fault. The correlated reports are placed in a Org file with the extension .edit.org. This file lists the faults and gives, for each of them, the list of occurrences in successive versions.

This files can be easily edited with an Org mode editor (e.g. Emacs). The file must end with the following three lines:

* org config
#+SEQ_TODO: TODO | BUG FP

Under emacs, load also the org-view-link file [1] from your .emacs preference file. It will at some support for the org link generated by Coccinelle. So, you will be able to open the links and have the fault positions highlighted. Shortcut: C-o

By studying the code, you can determine if the report is a true bug or a false positive (FP). The Org mode of emacs allows to change the status of each report (shortcut: C-t) You will cycle between the status of the SEQ_TODO line, i.e., TODO, BUG, FP.

[1] https://github.com/coccinelle/herodotos/blob/master/herodotos/utils/org-view-link.el

Contact info

Email: <nicolas.palix AT SPAMFREE imag DOT fr>

My IRC handle is npalix.

Questions about using Coccinelle should go to the Coccinelle mailing list: cocci@systeme.lip6.fr


KernelNewbies: NicolasPalix (last edited 2017-12-30 01:30:00 by localhost)