Witness should be faster now :-)

Don Lewis truckman at FreeBSD.org
Thu Aug 25 03:57:23 GMT 2005

I just committed a change to the witness code in HEAD (subr_witness.c
1.198) that speeds it up considerably.

I ran three different tasks as benchmarks:
	cd /usr/src; make buildworld

	cd /usr/ports; make index

	cd /usr/ports/x11/gnome2; make clean

I ran the benchmarks without the WITNESS options, with the original
witness code, and with the new witness code.  My test hardware is an
Athlon XP 2400+ box with 1G of RAM, SCSI disks, NFS client, and the
DEBUG_NFS_LOCKS kernel option.

With this change, I'm seeing anywhere from a factor of 5.4 to a factor
of 10.3 reduction in the system CPU time in the witness code.  Enabling
the original witness code increased the system CPU time by anywhere from
330% to 615%.  With the new witness code, the system CPU time penalty
for enabling witness dropped to about 60%, which was fairly consistent
across the three benchmarks.  Enabling the original witness code
increased the wall time for these benchmarks anywhere from 69% (make
buildworld) to 260%. With the new witness code, the wall time penalty
decreased to the range 12% to 26%.

If you've been disabling witness because of the large performance
penalty, you may find that this is no longer necessary.

I've got another potential performance boost in the hopper.  I'll
release it if it pans out.

I'm planning on doing an MFC after 6.0-RELEASE.

More information about the freebsd-current mailing list