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]"