Google's Summer of Code has been live since the beginning of this week. As I haven't posted in a while, I've got a few things to update on:

Test System

I've gathered some (mostly scrap) hardware to run netbsd-current and SolarisExpress b62 (hereafter, "onnv"). It has 2x250G SATA disks and a ~40G IDE disk, which should give me some flexibility to test several zpool configurations side-by-side.

I hit my first obstacle when trying to install onnv. I had installed NetBSD (2.1, I think; -current has already been built on my laptop, but hasn't been installed yet) from CD without issue. However, onnv would not install. I have the luxury of having a very similar configuration on my desk, where the onnv disk booted into the installer. By swapping the DVD drives (note: they are the same model of LG from ~3-4 years ago), things worked out.

Then, I ran into a small headache trying to get NetBSD to boot out of onnv's Grub setup. Even using chainloader +1, NetBSD's bootloader would hang after (seemingly) finding the kernel. I settled on using NetBSD's boot selector, which loads Grub for Solaris if the appropriate option is selected.

Still, I'm having trouble getting Networking up under onnv; and, no, it's not simply a matter of plumbing (I think). I can find no indication of what driver should be used (it's an ex0 in NetBSD). I've run dladm show-link and show-dev, but each show nothing. A little infuriating. I think last night I dreamt that I went in today and it just worked. Let's hope that happens.

More printouts than you can shake a fish at

I've got a nice fat binder now with, afaict, all of the onnv ZFS sources, as well as the FreeBSD compatibility layers. This has been nice to have to do some studying outdoors, when my laptop's battery dies, etc.

cflow(1)

I started writing some sed scripts to determine what interfaces are used by certain portions of ZFS code, and found this increasingly deficient. I then found devel/cflow in pkgsrc (I think with grep -Ri graph devel/*/DESCR). While cflow2vcg dumped core every time I ran it, the textual output is sufficient.

I've been generating call-graphs for the Storage Pool Layer, but I want to refine them a little more before posting them or getting into more detail about my findings. This is what I've done to generate call-graphs so far (posted here primarily for my own reference):

#!/bin/ksh

SRCPREFIX=${HOME}/src/freebsd
CFLOW_OPTIONS="--format=posix --omit-arguments ${CFLOW_OPTIONS}"

cd ${SRCPREFIX}/sys/contrib/opensolaris/uts/common/fs/zfs

cflow  ${CFLOW_OPTIONS} \
        -DFREEBSD_NAMECACHE -D_SOLARIS_C_SOURCE \
        -I../../../../../sys/compat/opensolaris \
        -I../../../../../sys/contrib/opensolaris/uts/common/fs/zfs \
        -I../../../../../sys/contrib/opensolaris/uts/common/zmod \
        -I../../../../../sys/contrib/opensolaris/uts/common \
        -I../../../../../sys/sys \
        -I../../../../../sys/contrib/opensolaris/common/zfs \
        -I../../../../../sys/contrib/opensolaris/common \
        -I../../../../../../include \
        @(arc*|spa*|txg|spa*|vdev*).c 2>/dev/null
Still a lot of puzzlement and wonder; but I've made some definite progress.

Does anyone have any thoughts on how useful either of these [1, 2] Solaris Internals books will be to the project? I thought some of my SoC startup money could go to either/both of these. Any other suggested investments? Let me know at <ogould@...>.

2007/06/02 00:04
THE MEATENING!! -- I strongly suggest that you do not send mail to that link.