John H. Baldwin

[email protected]
http://www.baldwin.cx/~john/

Summary: A FreeBSD committer with development experience in various areas of the kernel as well as experience maintaining custom FreeBSD distributions.
Education: B.S., Computer Science, May 2000
B.S., Mathematics, Applied Discrete Mathematics concentration, May 2000
Virginia Polytechnic Institute & State University (Virginia Tech)
Blacksburg, VA.
Minor: Religious Studies
Computer Skills: Hardware Architectures: Intel x86, x86-64 (amd64), RISC-V
Operating Systems: FreeBSD, Mac OS X
Programming Languages: C, C++, x86 and x86-64 Assembly, RISC-V Assembly, Python, Bourne Shell, C Shell, Awk, Sed
Markup Languages: Markdown, HTML, LaTeX, XML
Development Tools: Emacs, GDB, Subversion, git, cscope
Work Experience: Consultant, SRI International, Palo Alto, CA
September 2016 - Present
  • Added support for the FreeBSD MIPS, Aarch64, and RISC-V architectures to upstream GDB.
  • Rudimentary support for debugging of CHERI-MIPS, CHERI-RISC-V, and Morello binaries via gdb.
  • Lead the bringup of CheriBSD on CHERI-RISC-V including hybrid and purecap kernel support.
  • Sketched an application of CHERI to the x86-64 architecture.
Consultant, Netflix, Inc., Los Gatos, CA
July 2016 - Present
  • Ported the mdb debugger to run on FreeBSD. Supports debugging live FreeBSD kernels and FreeBSD kernel crashdumps but not FreeBSD user processes.
  • Changed FreeBSD i386 and amd64 architectures to enable thread and interrupt scheduling on secondary processors earlier in boot.
  • Merged support for kernel TLS transmit offload derived from internal patches to the public FreeBSD tree.
  • Merged support for kernel TLS transmit offload on FreeBSD into OpenSSL.
Consultant, Chelsio Communications, Inc., Sunnyvale, CA
November 2014 - Present
  • Extended POSIX asynchronous I/O support zero-copy send and receive for offloaded TCP connections in Chelsio T4/T5/T6 NICs.
  • Wrote driver to support the cryptography accelerator on Chelsio T6 NICs.
  • Implemented support for kernel TLS offload via the TOE on Chelsio T6 NICs.
  • Implemented support for kernel TLS offload for non-TOE TCP connections on Chelsio T6 NICs.
  • Implemented support for kernel TLS receive offload.
  • Implemented support for kernel TLS receive offload on FreeBSD in OpenSSL.
Member, Ararat River Consulting, LLC, Concord, CA
July 2014 - Present
  • Expanded debugging support for XSAVE including saving state in core dumps and adding XSAVE support for FreeBSD to gdb.
  • Added support for fork following on FreeBSD to gdb using ptrace().
  • Added native FreeBSD thread support to upstream gdb.
  • Ported kgdb from GDB 6.1 to modern GDB. Expanded libkvm to support cross debugging of crashdumps.
  • Added support for the FreeBSD ARM architectures to upstream GDB.
  • Added support for examining TLS variables on FreeBSD to upstream GDB.
Consultant, Intel Ireland Ltd, Ireland
December 2015 - September 2017
  • Assisted with porting the Intel QuickAssist driver for Linux to FreeBSD.
Software Engineer, Hudson River Trading, New York, NY
January 2009 - December 2014
  • Implemented kernel bypass for Chelsio T3 NICs.
  • Assisted with implementation of kernel bypass for Chelsio T4/T5 NICs.
  • Maintained an internal distribution of FreeBSD using Subversion and svk.
  • Implemented initial NUMA support for FreeBSD.
  • Added kernel APIs to FreeBSD to support the 64-bit Nvidia GPU driver
  • Reworked resource management in FreeBSD's PCI bus drivers including bus number management and the ability to grow I/O windows in PCI-PCI bridges.
  • Added support for catching and logging machine check exceptions to FreeBSD's kernel.
  • Ported support for threads on FreeBSD from the in-tree GDB 6.1 to GDB 7 in ports.
Senior Technical Yahoo!, Yahoo!, Atlanta, GA
May 2006 - December 2008
  • Wrote monitoring daemons and RAID management utilities for the LSI MPT-Fusion HBA and LSI MegaRAID SAS controllers.
  • Added support for booting FreeBSD from GPT-labelled disks directly from the BIOS (as opposed to booting from EFI).
  • Implemented support for PCI Message Signalled Interrupts in FreeBSD's PCI bus driver.
  • Extended kgdb to better integrate with gdb, including native handling for kernel module symbols.
  • Provided general support for OS issues on FreeBSD including analyzing kernel crashes and deadlocks and also analyzing userland issues such as run time linker bugs.
Senior Software Engineer, The Weather Channel, Atlanta, GA
November 2001 - May 2006
  • Ported simple device driver from Linux to FreeBSD and Windows XP (WDM);
  • Ported device driver for Video I/O board from FreeBSD to Mac OS X.
  • Backported simple ACPI support to FreeBSD 4.x to support soft power-off.
  • Continued work on multithreading the FreeBSD kernel:
    • Added a per-thread reference to user credentials to avoid locking and avoid race conditions with permission checks.
    • Implemented turnstiles with priority propogation and reader/writer locks.
  • Rewrote most of the x86-specific interrupt handling code to allow runtime selection of interrupt controllers. Also, implemented PCI interrupt routing across PCI-PCI bridges using $PIR and PCI interrupt routing using ACPI.
  • Appointed as FreeBSD SMP technical lead;
  • Elected to serve on FreeBSD governing board.
Senior Engineer, Wind River Systems, Inc., Alameda, CA
May 2001 - November 2001
  • Continued work on multithreading the FreeBSD kernel;
  • Extended the Witness debugging facility to handle lock upgrades and downgrades;
  • Converted the ktrace debugging facility to use a kernel thread to write to its backing file to avoid locking problems;
  • Made the FreeBSD kernel fully preemptive.
Systems Programmer, Berkeley Software Design, Inc., Concord, CA
June 2000 - May 2001
  • Improved support for EDD BIOS support in the x86 bootstrap needed for hard drives larger than 8.4 GB.
  • Worked as one of the primary engineers on the FreeBSD SMP next generation project:
    • Converted low-level interrupt vectors to interrupt threads;
    • Extended the atomic operation kernel API to allow for memory barriers in a manner consistent for the x86, Alpha, and IA-64 architectures;
    • Reworked the mutex code inherited from BSD/OS to be fully machine independent and to depend on the expanded atomic operation API for its machine dependent bits;
    • Split the software interrupt code from hardware interrupts and made it completely machine independent; and
    • Extended the Witness lock debugging facility to perform checks on shared/exclusive locks in addition to mutexes.
  • Assisted in implementing low-level support for SMP on Alpha systems.
Lab Administrator, Virginia Tech, Blacksburg, VA
August 1998 - May 2000
  • Administered over 40 machines in the CS undergraduate lab running FreeBSD and Tru64 UNIX.
  • Implemented a server/client remote cloning system using PicoBSD.
Summer Intern, Fuentez Systems Concepts, Inc., Martinsburg, WV
May 1999 - August 1999
  • Rewrote all of the makefiles, centralizing the definition of default rules and options. This new system also allowed all internal software to be recompiled with a single make command.
  • Designed and implemented a system that allowed the Automated Mutual-assistance VEssel Rescue (AMVER) system to receive messages from ships directly over e-mail.
Summer Intern, Gilbarco, Inc., Greensboro, NC
May 1998 - August 1998
  • Wrote shell scripts to automate tedious system administrator tasks under SCO Openserver.
  • Developed a web-based database of problem reports searchable and maintainable via CGI scripts.
Activities:
  • Committer, FreeBSD (August 1999 - Present)
  • Core Team Member, FreeBSD (June 2002 - July 2006, July 2010 - July 2014, July 2016 - July 2020)
Interests: FreeBSD, acoustic guitar, science fiction
References: Available upon request