Date: Sat, 1 Feb 1997 10:38:03 +0900 (JST) From: Michael Hancock <michaelh@cet.co.jp> To: "Ron G. Minnich" <rminnich@Sarnoff.COM> Cc: Andrew.Gordon@net-tel.co.uk, freebsd-hackers@FreeBSD.ORG Subject: Re: Re(2): Using rfork() / threads Message-ID: <Pine.SV4.3.95.970201101003.12751A-100000@parkplace.cet.co.jp> In-Reply-To: <Pine.SUN.3.91.970131093856.16303C-100000@terra>
next in thread | previous in thread | raw e-mail | index | archive | help
The Vahalia book mentions shared memory locks for 4.4BSD that worked essentially the same way. They were named mset, mwait, or something like that. Fastlock sounds cool, but shared memory locks are supposed to be fast. Instead of naming things like FastLock or TurboLock we should name them according to their function. i.e. synchronization primitives to use in shared memory. I prefer the mxxx conventions to categorize it with the mmap calls. On the otherhand, since rlock came from Plan 9 maybe we should look at Plan 9 synchronization. Regards, Mike Hancock On Fri, 31 Jan 1997, Ron G. Minnich wrote: > well, i have another thing that was (ah well) offered to freebsd called > fastlock(). Fastlock was two things: > 1) test and set, which ran at memory bandwidth > 2) a system call to be called only if the lock failed, > which ran at system call speeds. > > Fastlock is called with a pointer to shared data. In the general case > locks do not collide. So the cost of fastlock is the cost of a tset. In > the case of collision, the high-order bit was set (tset(mem, 0x80000000) > and the fastlock system call was called. The process waiting on the lock then > slept. > > The owner of the lock can do one of two things when it frees the lock: > 1) if no collide (mem&0x80000000 == 0), just clear the lock > 2) otherwise, clear the lock and call a system call which wakes up the first > sleeper on the lock. > > End result: very very fast locks, quite a bit faster than anything else. > > ron > > Ron Minnich |"Failure is not an option" -- Gene Kranz > rminnich@sarnoff.com | -- except, of course, on Microsoft products > (609)-734-3120 | > ftp://ftp.sarnoff.com/pub/mnfs/www/docs/cluster.html > > -- michaelh@cet.co.jp http://www.cet.co.jp CET Inc., Daiichi Kasuya BLDG 8F 2-5-12, Higashi Shinbashi, Minato-ku, Tokyo 105 Japan Tel: +81-3-3437-1761 Fax: +81-3-3437-1766
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SV4.3.95.970201101003.12751A-100000>