code

linux on cell

I'm currently working on the IBM Linux on Cell/B.E. team, maintaining the "spufs" module of the Linux kernel. I have some Cell/B.E. related work on the linux on cell page.

K42

K42 is a research-based operating system, designed for high performance, scalable behaviour on 64-bit processors.

Some of my current work on k42 is here

Netfilter Simulation Environment

This project allows Linux kernel netfilter code to be run outside kernel, and tested by sending packets through 'virtual' interfaces.

The main netfilter simulator page is available here

Patchwork

Patchwork is a web-based patch tracking system for open source projects. Patches (and subsequent comments about those patches) that are submitted to a mailing list are parsed and stored, and are listed on a website to allow the project's maintainer to update the state of each patch.

The Patchwork project is based here

feedbackd

feedbackd is an implementation of dynamic server load feedbackd in a Linux Virtual Server based cluster. feedbackd was initiated as part of my Honours project in 2002, and is still being developed to a lesser extent.

The main feedbackd page is here

kopete meanwhile plugin

The Kopete Meanwhile plugin enables Kopete (the KDE Instant Messenger client) to connect to Lotus Sametime Instant Messaging servers.

More here

toolchains

In the course of working on K42, I've needed to build a few toolchains, using gcc, glibc and binutils. With the sometimes-complex dependencies between these packages, I've built a few scripts to automate the process.

Details here.

bitfield decoding utility

This is a simple, configurable script to accurately decode the fields within a register, handy for working with device drivers.

More here.

C structure decomposer

destructor shows the layout of C struct definitions.

More here.

malloc counter

One of my colleagues needed a quick way of determining the peak memory usage of a process. malloccount.c is a shared library designed to be LD_PRELOADed, and prints out the number of bytes malloc()ed in total and peak figures when a process exits.

Also, this file will compile itself; just source it into the shell:

[jk@b4 tmp]$ . malloccount.c
gcc -Wall -Wstrict-prototypes -fPIC -D_GNU_SOURCE -ldl -shared -o libmalloccount.so malloccount.c

run as:
LD_PRELOAD=/tmp/libmalloccount.so <program>

And run as it says:

[jk@b4 tmp]$ LD_PRELOAD=/tmp/libmalloccount.so ls
libmalloccount.so  malloccount.c
### bytes allocated: total: 25007, peak: 24048

Download here

Thanks to Jimi Xenidis for improvements

courier imapd to kmail converter

This is a little script I needed a while ago; it converts a courier imapd mail repository to one that kmail can read. Both programs use the maildir format, but have different sematics for folders-within-folders

Run as:

courier2imap.pl in-dir out-dir

Download: courier2kmail.pl