Date: Fri, 2 Feb 1996 18:19:47 -0700 (MST) From: Terry Lambert <terry@lambert.org> To: jgreco@brasil.moneng.mei.com (Joe Greco) Cc: curt@emergent.com, freebsd-hackers@freebsd.org Subject: Re: Watchdog timers (was: Re: Multi-Port Async Cards) Message-ID: <199602030119.SAA01041@phaeton.artisoft.com> In-Reply-To: <199602022319.RAA12386@brasil.moneng.mei.com> from "Joe Greco" at Feb 2, 96 05:19:44 pm
next in thread | previous in thread | raw e-mail | index | archive | help
[ ... NFS benchmarks ... ] > Some of the Solaris variance may be due to differing processor speeds. > > We should be able to come closer to the Solaris numbers. There is no unfair > cache bashing going on or anything. Solaris' NFS implementation "unfairly" uses metadata write clustering. It delays the actual write completion to allow multiple modifications to the same object to take a single write. It *lies* to the client about having committed the metadata update before returning. It is possible to turn off write clustering (I forget the symbol name, but it's easy to find with the kernel debugger on Solaris). In addition, the Solaris UFS implementation is multithreaded; this means that it implements delayed ordered writes, even if only as a side effect of kernel preemptibiliy synchronization guarantees (ie: contrary to some opinions, kernel multithreading is a generic win even in the non-SMP case). If you are going to go async on FreeBSD, you should do the same on Solaris, out of fairness (see Solaris patch following signature). Going async is (of course) bogus BS of the first order. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. --------------------------------------------------------------------------- DISCLAIMER: THIS IS AN UNOFFICAL PATCH. USE AT YOUR OWN RISK. ========== asyncnfs.sh =================================================== #!/bin/sh patch_53() { case "$1" in no|off) w0=0x94102010 w1=0x9fc3c000 ;; yes|on|*) w0=0x94102000 w1=0x90102000 ;; esac adb -wk /dev/ksyms /dev/mem <<EOF rfs_write+794/W $w0 rfs_write+87c/W $w1 EOF } case `uname -r` in 5.3) patch_53 "$@" ;; *) echo "don't know how to patch `uname -r`" >&2 exit 1 ;; esac exit 0 ---------------------------------------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199602030119.SAA01041>