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