Date: Mon, 14 Jun 2004 12:48:36 -0700 From: Alfred Perlstein <alfred@freebsd.org> To: Maxime Henrion <mux@freebsd.org> Cc: "David E. O'Brien" <obrien@FreeBSD.org> Subject: Re: cvs commit: src/sys/amd64/conf GENERIC Message-ID: <20040614194836.GJ61448@elvis.mu.org> In-Reply-To: <20040614193942.GD9228@elvis.mu.org> References: <Pine.NEB.3.96L.1040614141907.34947B-100000@fledge.watson.org> <200406141458.02468.jhb@FreeBSD.org> <20040614192422.GH61448@elvis.mu.org> <20040614193942.GD9228@elvis.mu.org>
next in thread | previous in thread | raw e-mail | index | archive | help
* Maxime Henrion <mux@freebsd.org> [040614 12:40] wrote: > Alfred Perlstein wrote: > > * John Baldwin <jhb@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@mu.org cell: 408-480-4684
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040614194836.GJ61448>