One of Our Maintainers Is Missing
In 2003, I was asked to become the sym2 SCSI driver's maintainer. After ascertaining that the previous maintainer could no longer be contacted, I cautiously started making cosmetic changes to the driver and integrating patches that other people had written. As I became more confident working with the driver, I made more serious changes, such as adding support for the PCI driver model, deleting 2.2 and 2.4 compatibility code and coping with buggy drive firmware. As time goes by, the original authors and maintainers of Linux drivers move on, creating a number of problems. Without a maintainer's ongoing intervention, drivers are subject to little more than critical fixes, which are performed by people affected by the problem rather than by those familiar with the driver. As the kernel APIs evolve, an unmaintained driver will typically not migrate to new ways of performing functions until it becomes absolutely necessary. Losing a maintainer also means losing the rationale behind why a design decision was made, what alternatives were tried and what workarounds were used to address bugs. This talk will discuss some of the issues I faced when taking over someone else's driver and the changes that the Linux 2.6 SCSI subsystem encourages (or forces) driver maintainers to make. While this talk starts out discussing kernel issues, it goes on to discuss issues which apply to any large code base with geographically distributed development and should be of interest to any Open Source or Free Software developer. This paper was originally presented at UKUUG 2005, but has been substantially rewritten to include the results from discussions with developers from other projects.
Matthew has been a Linux kernel hacker since 1998 and became the sym2 driver maintainer in 2003. He presented papers at LCA in 2001, 2003 and 2004 as well as at OLS and UKUUG. He currently works on the ia64 kernel for HP and leads the parisc port in an unofficial capacity.