Witness should be faster now :-)

Tai-hwa Liang avatar at mmlab.cse.yzu.edu.tw
Thu Aug 25 06:32:31 GMT 2005


On Wed, 24 Aug 2005, Don Lewis wrote:
> 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.

   Thank you. This patch _does_ help me a lot!  Before this change, copying
files over smbfs was really a PITA -- about 22x slowdown from my observation
(1.6GHz Pentium M laptop):

smbhost> ls -la nostalgia.pdf
-rw-r--r--  1 avatar users 1247512 2005-06-06 09:27 nostalgia.pdf

* WITNESS disabled(cvsup'ed on Aug-23-2005)

bsdhost /mnt/samba# dd if=nostalgia.pdf of=/mnt/mfs/x 
2436+1 records in
2436+1 records out
1247512 bytes transferred in 1.346903 secs (926208 bytes/sec)
bsd host /mnt/samba# dd if=nostalgia.pdf of=/mnt/mfs/x
2436+1 records in
2436+1 records out
1247512 bytes transferred in 1.318945 secs (945841 bytes/sec)

* WITNESS enabled(same source tree)

bsdhost /mnt/samba# dd if=nostalgia.pdf of=/mnt/mfs/x
2436+1 records in
2436+1 records out
1247512 bytes transferred in 30.512210 secs (40886 bytes/sec)
bsdhost /mnt/samba# dd if=nostalgia.pdf of=/mnt/mfs/x
2436+1 records in
2436+1 records out
1247512 bytes transferred in 30.111005 secs (41430 bytes/sec)

* WITNESS enabled(same source tree + subr_witness.c:1.198)

bsdhost /mnt/samba# dd if=nostalgia.pdf of=/mnt/mfs/x
2436+1 records in
2436+1 records out
1247512 bytes transferred in 1.629300 secs (765674 bytes/sec)
bsdhost /mnt/samba# dd if=nostalgia.pdf of=/mnt/mfs/x
2436+1 records in
2436+1 records out
1247512 bytes transferred in 1.636264 secs (762415 bytes/sec)

-- 
Cheers,

Tai-hwa Liang


More information about the freebsd-current mailing list