Re: SCHED_4BSD: More than 1 process running on UP machine?

From: Robert Watson <rwatson_at_FreeBSD.org>
Date: Sun, 1 Jul 2007 21:21:48 +0100 (BST)
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
Received on Sun Jul 01 2007 - 18:21:48 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:13 UTC