cvs commit: src/sys/amd64/conf GENERIC

Alfred Perlstein alfred at freebsd.org
Mon Jun 14 19:48:58 GMT 2004


* Maxime Henrion <mux at freebsd.org> [040614 12:40] wrote:
> Alfred Perlstein wrote:
> > * John Baldwin <jhb at FreeBSD.org> [040614 11:57] wrote:
> > > 
> > > I'm betting it is just triggering a race.  When I first did the adaptive 
> > > mutexes I stress tested it (-j <bignum> buildworld loops) on an ultra60, an 
> > > alpha ds20, and a quad pii-xeon w/o any lockups.
> > 
> > Just a side note, I think it's the Berkeley DB's recent code that
> > will spin a number of times based on the number of CPUs present in
> > the system.  Meaning, it might make sense to spin more on a quad
> > than on a dual proc machine.  It might be worth checking this out.
> 
> What do you mean by spinning more?  As far as I know, with adaptive
> mutexes, if some thread tries to lock a blocking mutex that is already
> held by another thread currently running on another CPU, then it spins
> instead of blocking, assuming the other thread will soon release the
> mutex.  Obviously, this has more chances to happen if there are more
> CPUs in the system but I don't get what you mean here.


 DbEnv::set_tas_spins

   Specify that test-and-set mutexes should spin tas_spins times without
   blocking. The value defaults to 1 on uniprocessor systems and to 50
   times the number of processors on multiprocessor systems.

   The database environment's test-and-set spin count may also be set
   using the environment's DB_CONFIG file. The syntax of the entry in
   that file is a single line with the string "set_tas_spins", one or
   more whitespace characters, and the number of spins. Because the
   DB_CONFIG file is read when the database environment is opened, it
   will silently overrule configuration done before that time.

===

Just an interesting idea.

-- 
- Alfred Perlstein
- Research Engineering Development Inc.
- email: bright at mu.org cell: 408-480-4684


More information about the cvs-src mailing list