This is the title of my project, that I’ll be working on this winter as a Gnome Linux Kernel Intern.
This blog post is the introduction about my project and what all I’ll be doing in it.
Coccinelle is a program matching and transformation tool for C code that has been used extensively in contributing to the Linux kernel, for both code evolutions and bug fixes. Coccinelle is driven by specifications, known as semantic patches, that use a notation based on C code, and are this fairly easy to develop. Around 40 semantic patches are included with the Linux kernel source code, in scripts/coccinelle, and are used in the continuous testing service provided by Intel.
Recently, Coccinelle is used in an extensive study of faults in Linux 2.6. The goal of my project is to extend the results to more recent versions of Linux, and to facilitate the extension of the work to subsequent versions. This will entail:
1. Reviewing existing results. : Plan.
2. Running the Coccinelle scripts that have been developed to collect data.
3. Evaluating the resulting reports to identify real bugs and false positives.
4. Submitting patches to the Linux kernel to fix the identified real bugs that are still present in the kernel.
5. Updating a database with the results.
6. Creating graphs to summarize the results.