Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Jan 1997 13:27:44 -0800 (PST)
From:      Simon Shapiro <Shimon@i-Connect.Net>
To:        "Ron G. Minnich" <rminnich@Sarnoff.COM>
Cc:        freebsd-hackers@FreeBSD.ORG, Andrew.Gordon@net-tel.co.uk
Subject:   Re: Re(2): Using rfork() / threads
Message-ID:  <XFMail.970131133216.Shimon@i-Connect.Net>
In-Reply-To: <Pine.SUN.3.91.970131093856.16303C-100000@terra>

next in thread | previous in thread | raw e-mail | index | archive | help
So where is this fantastic code?
Simon

Hi Ron G. Minnich;  On 31-Jan-97 you 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 
> 
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.970131133216.Shimon>