SCHED_4BSD: More than 1 process running on UP machine?

Robert Watson rwatson at FreeBSD.org
Sun Jul 1 20:21:49 UTC 2007


On Sun, 1 Jul 2007, Abdullah Ibn Hamad Al-Marri wrote:

> On 6/30/07, Ulrich Spoerlein <uspoerlein at 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


More information about the freebsd-current mailing list