Date: Sun, 1 Jul 2007 21:21:48 +0100 (BST) From: Robert Watson <rwatson@FreeBSD.org> To: Abdullah Ibn Hamad Al-Marri <almarrie@gmail.com> Cc: current@freebsd.org Subject: Re: SCHED_4BSD: More than 1 process running on UP machine? Message-ID: <20070701211819.O46634@fledge.watson.org> In-Reply-To: <499c70c0707010956qdb45580s16a50c8795dbbcea@mail.gmail.com> References: <20070630085038.GA1473@roadrunner.q.local> <499c70c0707010956qdb45580s16a50c8795dbbcea@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 1 Jul 2007, Abdullah Ibn Hamad Al-Marri wrote: > On 6/30/07, Ulrich Spoerlein <uspoerlein@gmail.com> wrote: >> Hi all, >> >> I upgraded to -CURRENT and am running with SCHED_BSD on an UP machine >> (where ULE has no advantage over BSD, right?) >> >> PS: whats the new state 'ucond' all about? > > SCHED_ULE runs MySQL faster in my UP server vs SCHED_4BSD with FreeBSD 7.0 > > As for uncond maybe someone could tell us about it, but I thunk it has to do > with libthr. With libthr, when a thread blocks waiting on a userspace mutex or condition variable, that is exposed to the kernel via the umtx system calls. You can look in kern_umtx.c for details, but the short of it is that the "ucond" state has to do with waiting on a condition variable associated with a umtx, so reflect in-application synchronization between threads. With the m:n libpthread, waiting and synchronization between threads wasn't explicitly visible to the OS, so you basically just saw "kserel", which meant that there were no runnable threads. Robert N M Watson Computer Laboratory University of Cambridge
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070701211819.O46634>