OpenBSD [forum] creator Theo de Raadt [interview] recently announced that support for the SGI O2 architecture was soon going to be imported, primarily in an effort to hunt down and fix bugs in the OpenBSD codebase. He explains:
"Why add a new architecture? SGI's mips machines are dead, aren't they? Well our expierence has been that every architecture we add has helped us find bugs in shared code that affects other architectures. [...] Some very scary and major bugs have been dredged out almost automatically. In some cases, the effort is not worthwhile. In this case, I judge it to be valuable. In particular, the SGI developer will probably peek out quite a few busdma bugs, which will affect driver support on any busdma architecture."
The busdma APIs were originally developed on NetBSD [forum], aka bus_dma, to help reduce the dependancy of device drivers on platform specific code, therby increasing portability. These APIs were ported to other BSDs such as OpenBSD and FreeBSD [forum] several years ago.
From: Theo de Raadt [email blocked] To: misc Subject: SGI O2 Date: Wed, 04 Aug 2004 02:43:57 -0600 A developer is about to import an SGI O2 codebase. Anyone want that? There's a catch. We need at least 3 machines in Calgary. There's a little known rule in OpenBSD -- the "to make an official snapshot" rule -- which says roughtly: in addition to the main developers of a new architecture, at least Theo and Peter must have machines. Otherwise all of us get scared of the possibility of a new architecture languishing and creating an unsightly pit of dead code in the tree. We could use more than 3, since developers visit here once in a while, and we like to send them on their way with full suitcases. Is there anyone out there that wants to take care of this? ie. Finding some machines, and getting them to Calgary. It's a mission. I'm serious. Sometimes we ask and nothing happens. It is kind of like I am asking our user community to invest some time in getting access to some damn cheap (just check Ebay) machines and simply post them to Calgary :) People seem to ask how they can help quite often; here's an example. Why add a new architecture? SGI's mips machines are dead, aren't they? Well our expierence has been that every architecture we add has helped us find bugs in shared code that affects other architectures. (As long as it receives developer and does not rot like NetBSD's architectures do). Some very scary and major bugs have been dredged out almost automatically. In some cases, the effort is not worthwhile. In this case, I judge it to be valuable. In particular, the SGI developer will probably peek out quite a few busdma bugs, which will affect driver support on any busdma architecture. ps. m88k has been the most worthwhile example, since some insane parts of that architecture permits Miod to find a MI bug weekly.
What a great policy for developers
Personally I think this is something Linus should adapt for the Linux development process. Of course with the OSDL sponsoring his development he definitely has more access to machines representing the various architectures. Commiting the primary developers of the kernel to each architecture in the codebase would minimize the drift between the main code and the various architectures that keep their development in separate branches.
--KP
Linus is on PowerPC now I think
I seem to recal that reading Linus is actually working on a PowerPC box now (Apple I believe) and that's helping out the Linux PPC port quite a bit. Can't find a reference ATM.
I certainly agree that the more architectures you run your software one, the more stable it ends up being.