FreeBSD Foundation Projects
Problem Reporting Prototype
Project Status: On going
FreeBSD Developer: Mark Linimon
Mark Linimon has been awarded a grant to prototype a new problem reporting system for the FreeBSD project. This project will allow Mark to define the features, look-and-feel, and architecture of a future replacement of the project's current GNATs based system. Once the prototype is complete, it will be used to garner input from the FreeBSD community before a production system is implemented.
The project will be completed by June 2009.
AVR32 Support
Project Status: On going
FreeBSD Developer: Arnar Mar Sig
Arnar Mar Sig will be developing AVR32 support for FreeBSD. AVR32 is a 32-bit RISC architecture targeted for low power high throughput embedded applications. The target platform is the NGW100 reference design board from Atmel.
The project will be completed by August 2009.
Wireless Mesh Support
Project Status: On going
FreeBSD Developer: Rui Paulo
Rui Paulo will be implementing the forthcoming IEEE 802.11s wireless mesh standard for FreeBSD. Wireless mesh networks are expected to become widespread as routers and network appliances deploy them, allowing wireless networks to be built and extended dynamically. Support for the standard will allow FreeBSD consumers to take advantage of this new technology.
The project will be completed by July 2009.
Improvements to the FreeBSD TCP Stack.
Project Status: On going
FreeBSD Developer: Lawrence Stewart and Swinburne University of Technology's Centre for Advanced Internet Architectures (CAIA)
This three-part project will include implementing Appropriate Byte Counting (ABC) RFC3465 support, adapting and merging CAIA's Statistical Information for TCP Research (SIFTR) TCP analysis tool into FreeBSD, and making improvements to the TCP reassembly queue.
The project will be completed by July 2009.
Make removing disk devices with mounted filesystems on them safe.
Project Status: Completed
FreeBSD Developer: Edward Tomasz Napierala
The project is to make FreeBSD tolerate the removal of active disk devices, such as when a USB flash device with a mounted filesystems is physically detached by a user. Currently the system may panic in this situation. The work involves adding proper reference counting to strategic portions of the kernel and modifying filesystems to properly handle "device lost" errors.
Status of the changes is: -CURRENT should no longer panic when you remove a USB drive without unmounting it first. The changes will be merged into 7.x soon.
Network Stack Virtualization Project
Project Status: Completed
FreeBSD Developer: Bjoern Zeeb
The virtualized network stack will significantly enhance FreeBSD's jail functionality, allowing jails to have their own complete and locally administered network stacks, including firewalls, routing, and IPsec configurations. The Foundation will be sponsoring Bjoern Zeeb, a FreeBSD network developer, to enhance the existing prototype, now being merged into FreeBSD 8.x, as well as provide code review.
Improving the Hardware Performance Counter Support
Project Status: Completed August 6, 2007
FreeBSD Developer: Joseph Koshy
The FreeBSD Foundation, with a generous grant from Google, teamed up to sponsor Joseph Koshy in improving the hardware performance counter support in FreeBSD. The goal of the project was the addition of callgraph support in the hwpmc driver. With callgraph support, developers can more clearly visualize performance issues through the exact code paths, rather than a specific function which may only exhibit issues through one path, but not others. In addition to the improvements to this software, Google provided funding for 2 modern CPU machines for development and testing. These new machines were placed in the network performance cluster hosted by Sentex Corp in Ontario, Canada.
Following is a more detailed list of what was added:
- The hwpmc driver now supports callchain capture, for both the kernel and for user processes.
- The machine-dependent and machine-independent parts of the kernel for the i386 and amd64 architectures (the ones that hwpmc is available on) have been so enhanced to support extra functionality needed by hwpmc(4) for callgraph support.
- The libpmc(3) library has been enhanced to process the new information collected by the kernel module.
- The pmcstat(8) tool produces two kinds of reports using captured callchain data, (a) traditional gprof(1) callgraphs and (b) a callchain summary, for two different 'views' into the collected data.
- Manual pages for the driver hwpmc(4), command-line tool pmcstat(8), and interface library pmc(3) now reflect the new features available.
How to access the code
The callchain capture work is in CVS now.
Network Stack Virtualization Project
Project Status: In Progress
FreeBSD Developer: Marko Zec
The network stack virtualization project aims at extending the FreeBSD kernel to maintain multiple independent instances of networking state. This will allow for complete networking independence between jails on a system, including giving each jail its own firewall, virtual network interfaces, rate limiting, routing tables, and IPSEC configuration.
The prototype, which is kept in sync with FreeBSD -CURRENT, is now sufficiently stable for testing. It virtualizes the basic INET and INET6 kernel structures and subsystems, including IPFW and PF firewalls, and more. The next step is to have the IPSEC code fully virtualized, and refine and document the management APIs. The short-term goal is to deliver production-grade kernel support for virtualized networking for FreeBSD 7.0-RELEASE (as a snap-in kernel replacement), while continuing to keep the code in sync with -CURRENT for possible merging at a later date.
