Round 8 (May to August 2014) projects:
Coccinelle
Coccinelle is a program matching and transformation tool for C code that has been used extensively in contributing to the Linux kernel, for both 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.
The goal of this internship is to help build up the set of semantic patches that are included in the Linux kernel. This will involve primarily hardening semantic patches that have been developed previously, and putting them in the form used in the semantic patches Linux kernel. There is ample opportunity to contribute patches to Linux source code as part of the semantic patch hardening process.
Mentor: Julia Lawall
Linux-Kernel RCU
Potential projects include:
- Automatically Locate RCU Abuses
Inline rcu_read_lock()
- Add kmem_cache_free_rcu()
- Validate RCU Algorithms
- Automate Testing of RCU CPU Stall Warnings
- Port RCU's KVM Scripts
- Miscellaneous Fixes to RCU
For more details on each project, please see this page.
Mentor: Paul E. McKenney < paulmck@linux.vnet.ibm.com >
ath5k
Ath5k is a completely FOSS wireless driver for Atheros based wireless chipset versions AR5xxx in the Linux Kernel. The hardware is old but the driver is still heavily used on academia/research and on various modern applications (e.g. 802.11p).
Some time ago Adrian Chadd released code on AR5513 (the Atheros HAL -Hardware Access Layer- for that chipset), it's a chipset able to do 802.11a/b/g with a smart antenna/dual PHY design. The goal of this project is to port this code on ath5k and add support for AR5513. In the process you'll get familiar with the low level parts of wireless cards, the inner workings of a device driver, the related subsystems and the challenges we face when playing with hardware.
An additional potential project is to implement 802.11 power saving modes for existing devices, enabling more efficient use in battery-powered stations such as laptops. Some preliminary patches have been already posted, but they need cleanup, functional changes, and validation. The interested intern would study the 802.11 specification, relevant parts of mac80211, the provisional patches, and possibly other related drivers such as ath9k to create a working, upstreamable implementation of power saving.
Mentors: Nick Kossifidis, Adrian Chadd, Bob Copeland
nftables
nftables is a new firewalling framework available since the Linux kernel 3.13. It includes new userspace libraries and utilities that aim to replace the popular {ip,ip6,arp,eb}tables utilities.
The goal of this internship is to help to improve nftables, this includes:
chase bugs and fix them. We already have a good bunch in the Netfilter's bugzilla website.
- implement an automated testing infrastructure for nftables that would help to catch regressions.
help us implement some of the missing features.
Please, read the nftables HOWTO to get familiarized with the new software.
Mentor: Pablo Neira Ayuso