I am Andy Whitcroft a member of the Canonical Kernel Team. I help to maintain the Ubuntu kernels and related packages for all actively supported Ubuntu releases. I am involved with planning and delivering the Ubuntu kernels within the development releases, as well as handling bugs reported by the community.

Ubuntu Contributions

Quantal Development

  • Hyper-V -- ongoing support and development of hyper-v paravirtualised support.

  • Plus One -- joined the Ubuntu Plus One team

  • Low Latency -- helped out with the lowlatency kernel updates.


  • pciutils (xnox, cjwatson) -- merged with debian upstream, confirmed there was no longer any delta, synced package from unstable
  • syslinux (infinity) -- kernel no longer exports ext2_fs.h, switch to using the official version in e2fs-tools
  • openhpi (infinity) -- simple glib.h conversion required
  • cups-filters, luatex (infinity) -- simple rebuild for libpopper19 was required
  • calibre, texlive, gambas2, xpdf (infinity) -- ported to libpoppler25
  • cups (pitti) -- fixed armel FTBS due to optional library elements
  • visual-regexp (infinity) -- rebuild for tclvfs update
  • strongwind (infinity) -- rebuild for at-spi transition
  • jigdo, chise-base, libpam-ccreds, 389-ds-base, subversion, db4.8 -> db5.1 transition

  • various (infinity) -- other packages touched during Plus One stint
  • squid-deb-proxy (mvo) -- IPv6 support for proxy configuration
  • madwimax, wicd-daemon, wifi-radar, zentyal-network (mterry) -- switch dhcp3-client -> isc-dhcp-client

Precise Development

  • Union Mounts -- maintaining the versions of overlayfs and aufs in the kernel. Working on various issues with overlayfs contributing fixes upstream.

  • Hyper-V -- working with upstream maintainers to get support for the hyper-v paravirtualised disk drivers working in both the CD images and installed images. Preparing images for use in a hyper-v hypervisor based system.

  • Configuration -- working on better visualisation for the kernel configurations, and then applying those results to clean up the kernel configuration.


  • initramfs-tools (cjwatson) -- added support for the hyper-v drivers to the default initramfs builds
  • grub2 (cjwatson/slangasek) -- rejigged support for the vt.handoff=N parameter to prevent passing it when it is not required
  • grub-gfxpayload-lists -- added the Pulsbough driver to the list
  • linux-firmware-nonfree (pitti) -- extended the modalias work to build the list during build

Oneiric Development

  • Linux 3.0 -- handling packaging fallout caused by Linus' switch from v2.6.39 to 3.0 for the Oneiric kernel.

  • Overlayfs -- helping test and integrate overlayfs with aufs such that they could co-exist in the Ubuntu kernel, integration work with installer


  • module-init-tools (cjwatson) -- preliminary resync with debian upstream (we have been out of sync for some years), fixes for kernel 3.0
  • kexec-tools (cjwatson) -- resync with debian upstream
  • kexec-tools (cjwatson) -- fix FTBS on powerpc
  • ps-utils (cjwatson) -- fixes for kernel 3.0 versioning
  • nfs-utils (ev) -- fixes for kernel 3.0 versioning
  • lm-sensors-3 (mdeslaur) -- fixes for the fixes for kernel 3.0 versioning
  • module-init-tools (maxb) -- resync'd with debian 3.16-1 fixing bzr branch history to reconnect to UDD branches
  • casper (cjwatson) -- enable overlayfs to be used as the union filesystem
  • udev (slangasek) -- rewrote the exit handling to ensure we do not lose any outstanding firmware requests

Natty Development

  • Natty Kernel Release Manager -- for the Natty cycle I was the kernel release manager responsible for pulling together and delivering the Lucid kernel for each Milestone.

  • BIOS Boot Splash -- worked with Foundations to deliver graphical boot from grub through to the kernel, this included rebuilding the upstart jobs to avoid collisions between vesafb and KMS drivers which was triggering GPU hangs.

  • Overlayfs -- evaluating overlayfs as a possible replacement for aufs as out union mounts solution, preliminary integration of overlayfs support


  • module-init-tools (slangasek) -- added mechanism to avoid loading vesafb when a drm framebuffer is detected, avoiding crashed triggered by attempts to use both
  • debian-installer (cjwatson) -- pushing kernel version changes into the installer
  • wireless-tools -- fixed up linker ordering issues

Maverick Development

  • Debian Commonisation -- reviewed and further simplified the debian abstraction pulling back the common code to a shared code base. Rolled this out to the later releases.

  • Union Mounts Investigation -- reviewed the ongoing VFS Union Mounts progress and reviewed and evaluated the patches for Ubuntu.

  • Wiki Revamp -- worked with the Triage team to put together and drive a review of the kernel team wiki (Kernel).

  • Bug Triage Levels -- worked with the Triage team to specify the new Triage levels helping define the process and its implementation.

  • BIOS Boot Splash -- worked with Foundations on the project to maintain the BIOS boot splash through to when plymouth splash is ready to start, produced patch kits for the kernel to add a new VT mode for this.


  • apt-cacher-ng (mvo) -- added support for passing through DevelReleaseNotes to fix update-manager

  • bcmwl (tseliot) -- fixed bug in multicast operators

Lucid Development

  • Lucid Kernel Release Manager -- for the Lucid cycle I was the kernel release manager responsible for pulling together and delivering the Lucid kernel for each Milestone.

  • Ubuntu Delta Review -- review of the current kernel delta, reporting on the delta and driving the review at UDS.

  • Ubuntu Configuration Review -- review of the current kernel configuration, and driving the review at UDS and implementing the changes.

  • KMS -- drove KMS adoption at the kernel level, including a full backport of the 2.6.33 DRM stack for the Lucid kernel.

  • Debian Abstraction -- reviewed, cleaned up and simplified the debian abstraction, implementing it across all of the lucid branches.

  • Kernel Uploader -- became a per-package uploader for the Ubuntu Kernel packages (AndyWhitcroft/KernelUploadsApplication)

Karmic Development

  • Ubuntu Delta Review -- review of the current kernel delta, reporting on the delta and driving the review at UDS.

  • Ubuntu Configuration Review -- review of the current kernel configuration, and driving the review at UDS and implementing the changes.


  • pm-utils -- added support for detecting successful/failed suspend and hibernates
  • apport (pitti) -- added reporting side of suspend/hibernate fixes

Jaunty Development

  • Mainline kernel packaging - I am involved in a Jaunty project to automatically package mainline kernels to simplify Ubuntu regression detection (see KernelMainlineBuilds),

  • suspend/resume stress testing - one of the Kernel Teams Jaunty goals is to improve suspend/resume fucntionality, I am involved developing the stress testing and the automated reporting harness which is now part of the checkbox test suite (see KernelTeam/SuspendResumeTesting), and

  • Kernel tree management review - I performed a review of our tree management proceedures to help document the current processes and see how they could be improved. (see KernelTeam/Specs/JauntyKernelTreeManagement)


  • module-init-tools (timg-tpi) -- switched firewire stacks used by default by switching blacklists
  • dkms -- ensured that the dkms directories were correctly cleaned out to ensure kernel removal would complete successfully
  • alsa-drivers -- reenabled OSS drivers to allow espeak to work
  • ifupdown -- followed changes to modprobe in the module-init-tools package to ensure the blacklists are correctly applied
  • update-manager -- fixed pathname issues in cdromupgrade scripting
  • kexec-tools (cjwatson) -- switch default to off by default as this triggers unexpected semantic changes during reboot, adjusted default handling on upgrade


One of my secondary roles is to triage and fix bugs in the Ubuntu linux kernel and associated packages.

General Open Source Contributions

Upstream Maintainer

I have authored and continue to maintain the following open source projects:

  • checkpatch - I am the maintainer for the kernel source code automated style checker used to maintain code quality in a large part of the Linux kernel,

  • conmux - I am maintainer for the console multiplexor project, and

  • autotest - I am co-maintainer for the autotest project concentrating on the autotest client side harness.

Upstream Projects

I have previously contributed functionality to the following upstream projects:

  • Linux Kernel - memory management, large pages

  • git - svn interface fixes


Linux related publications:

  • The What, The Why and the Where To of Anti-Fragmentation, Mel Gorman and Andy Whitcroft, OLS 2008 (PDF)

  • Fully Automated Testing of the Linux Kernel, Martin Bligh and Andy Whitcroft, OLS 2006 (PDF)

  • Supporting the Allocation of Large Contiguous Regions of Memory, Mel Gorman, Andy Whitcroft, OLS 2007 (PDF)

Community Networking


I would like to thank the following people for sponsoring my uploads:

AndyWhitcroft (last edited 2012-08-03 12:10:06 by apw)