On Sun, 25 Nov 2007, Christopher Chen wrote:

On Nov 25, 2007 12:05 PM, Christopher Chen <[EMAIL PROTECTED]> wrote:
On Nov 25, 2007 3:13 AM, Robert Watson <[EMAIL PROTECTED]> wrote:
At this point, Giant is gradually becoming a lock around the tty, newbus, usb, and msdosfs code, and we're largely at diminishing returns in terms of making improvements in parallelism through removing Giant. In FreeBSD 7, the focus was on improving parallelism rather than removing Giant, with improvements in locking primitives, the scheduler, and lock granularity. For example, most of the improvement in MySQL performance in FreeBSD 7 can be put down to a small number of changes:

- Conversion to 1:1 threads from M:N threads.

I enjoyed reading your overview of changes from FreeBSD 6 to 7 with regards to MP scalability, but I am a bit confused over this point--Doesn't the user still have the choice between libthread, which is M:N, and libthr, which is 1:1?

At some point during the 6.x days, it was considered advantageous to use libthr when running MySQL. Has the project decided to go with libthread after all?

Perhaps we're talking about entirely different things.

My apologies. I re-read your statement and it makes sense now.

I thought you were saying we were converting from 1:1 to M:N.

Sorry for any confusion!

No problem -- just to be clear: in 7, users can still choose between libpthread (m:n) and libthr (1:1), but the default is now libthr rather than libpthread, as libthr seemed to perform better in most if not all workloads of interest. The libthr in 7.0 is an enhanced version of the libthr that was present in 6.x, although I don't have a list of the changes off-hand.

Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to