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.Received on Thu Aug 25 2005 - 01:57:23 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:42 UTC