Skip site navigation (1)Skip section navigation (2)
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>