This directory contains the code for Pulse, a dynamic deadlock detection mechanism for Linux kernel v2.6.8.1. In our implementation, we modified Linux kernel 2.6.8.1 and the NPTL library in glibc-2.3.2. linux-2.6.8.1-dd.patch: A patch for Linux 2.6.8.1 that implements Pulse. To install it, you need to download the original 2.6.8.1 kernel source from kernel.org, and then apply this patch by doing: patch -p0 < linux-2.6.8.1-dd.patch glibc_2.3.2.ds1-16.dsc, glibc_2.3.2.ds1.orig.tar.gz, and glibc_2.3.2.ds1-16.diff.gz: These three files constitute the Debian glibc_2.3.2.ds1-16 source package, which can be downloaded from the web. To unpack and install, do the following. gunzip glibc_2.3.2.ds1-16.diff.gz tar xvfz glibc_2.3.2.ds1.orig.tar.gz patch -p0 /include --enable-add-ons=nptl --with-tls make Note that make will compile every component of glibc, so it's going to take a long time (you can actually stop the compilation as soon as nptl has been compiled). Later on, if you modify NPTL and want to re-compile it, you can simple do "make subdirs=nptl". After the compilation, nptl/libpthread.so is the new version of the NPTL library. Copy it to /lib/tls/ (and thus overwrite the original libpthread.so there). Remember to chmod o+rx libpthread.so.0 if you encounter the __errno GLIBC_2.0 symbol problem when using the library.