virtuousgeek.org

I've been involved a bit in several open source projects (patch archive). A list of some past work:

Linux kernel


    Generic code

  • designed and implemented a new PIO read interface to allow completion out of order wrt DMA, readX_relaxed()
  • designed and implemented a new I/O memory ordering primitive to allow devices to order PIO writes in a faster way, mmiowb()
  • designed and implemented a PCI userspace API so that userspace can access PCI resources (including the option ROM) in a portable manner. Involved adding mmap support to the sysfs filesystem.
  • designed and implemented a legacy I/O access API so that userspace can portably access legacy I/O ports on Linux platforms
  • lots of ACPI fixes
  • added top level scheduler domain for large NUMA boxes
  • lots of other fixes
  • fixed oprofile profiler to boot on 512p
  • implemented efficient NUMA memory allocation fallback
  • wrote timer driver for sn2 chipset timer hardware

    Documentation

  • io_ordering.txt
    Describes out of order PIO completion problems that need to be dealt with in kernel code.
  • additions to DocBook/deviceiobook.tmpl
    Described new device driver API additions readX_relaxed() and mmiowb().
  • filesystems/sysfs-pci.txt
    Describes /sys exported API for userspace access to PCI resources.

    arch/i386

  • resurrected visws support for the 2.5 kernel, gave up on further improvements after SGI rejected my request to open source the 3D graphics resource manager driver

    arch/ia64

  • acted as subarch maintainer for the sn2 platform
  • contributed kernel configuration files for several platforms
  • resurrected ia64 generic platform support by fixing several sn2 bugs and design problems
  • rewrote discontiguous memory support code to support sn2 in addition to all other ia64 platforms
  • lots of ia64 related ACPI fixes
  • added support for checking memory attribute support to prevent regions from being mapped as WC when they can't support it (needed to make the framebuffer drivers work on sn2)
  • added an ill-fated I/O recovery mechanism to the ia64 machine check code (ended up implementing legacy I/O support in a more reliable way)
  • added a SAL feature export API for userspace to access platform features in a portable way across ia64 platforms (/proc/salinfo)
  • implemented bounce buffering for DMA mappings on sn2 to work around hardware issues
  • worked on kexec for ia64

    drivers

  • fixed a few framebuffer drivers to work on ia64 (using aforementioned APIs)
  • added support for mmiowb() and readX_relaxed() to selected drivers

X server


  • added sn2 support to the X.Org X server project
  • added EXA support to the Intel i810 driver
  • various other work (I/O port changes, etc.)
  • Documented EXA API for driver writer

Misc.


  • bugfixes for Mesa
  • bugfixes for SDL
  • glibc patch to use aforementioned clock driver as a timer source for POSIX clock routines
  • KDE on IRIX fixes
  • wrote XMMS audio driver for IRIX
Webmeister: Jesse Barnes