using gcov/lcov with the linux kernel

GCOV/LCOV are amazing tools to figure out code coverage in the Linux kernel. It is fairly trivial to setup on your own machine. First, enable the following in your kernel configuration:


getting kernel crashdumps for hung machines

Debugging hung machines can be a bit tricky. Here I’ll document methods to trigger a crashdump when these hangs occur. What exactly does it mean when a machine ‘hangs’ or ‘freezes-up’? More information can be found in the kernel documentation, but overall there are really a few types of hangs.


using with ubuntu

Bisecting the kernel is one of those tasks that’s time-consuming and error prone. is a script that lives in the linux kernel source tree that helps to automate this process. The script is extremely extensible and as such takes time to understand which variables need to be set and where. In this post, I’ll go over how to perform a kernel bisection using a VM as the target machine. In this example I’m using ‘ubuntu’ as the VM name.


using CRIU to checkpoint a kernel build

CRIU stands for Checkpoint/Restart in Userspace. As the criu package should be landing in Utopic soon, and I wanted to test drive it to see how it handles.


manually deploying openstack with a virtual maas on ubuntu trusty (part 2)

In the previous post, I went over how to setup a virtual MAAS environment using KVM [1]. Here I will explain how to setup Juju for use with this environment. »

manually deploying openstack with a virtual maas on ubuntu trusty (part 1)

The goal of this new few series of posts is to be able to setup virtual machines to simulate a real-world openstack deployment using maas and juju. This goes through setting up a maas-server in a VM as well as setting up maas-nodes in VMs and getting them enlisted/commissioned into the maas-server. Next juju is configured to use the maas cluster. Finally, openstack is deployed using juju. »

using kgraft with ubuntu

New live kernel patching projects have hit LKML recently here and here, and I’ve taken the opportunity to test drive kGraft with the Ubuntu kernel. This post documents how to get a sample patch working.


netfilter hooks to snoop packets

I’ve written a short netfilter hook to help snoop some outgoing packets. You can view the source code here. I read a few articles to get an idea of how to put things together.


creating a local vm easily and automatically

This is the nifty little snippet I use to create a quick and dirty VM for testing. Just apt-get install vmbuilder and run the following:


using LTS HWE kernels with MAAS nodes

Once you get machines setup using MAAS, you may want to be able to install an alternative kernel when starting a machine. Here’s how to do it.