libthr and 1:1 threading.

Terry Lambert tlambert2 at mindspring.com
Wed Apr 2 15:32:44 PST 2003


Peter Wemm wrote:
> No.  It gives the ability for a thread to block on a syscall without
> stalling the entire system.  Just try using mysqld on a system using libc_r
> and heavy disk IO.  You can't select() on a read() from disk.  Thats the
> ultimate reason to do it.  The SMP parallelism is a bonus.

Bug in FreeBSD's NBIO implementation.  A read() that would result
in page-in needs to queue the request, but return EAGAIN to user
space to indicate the request cannot be satisfied.  Making select()
come true for disk I/O after the fault is satisfied is a seperate
issue.  Probably need to pass the fd all the way down.

-- Terry


More information about the freebsd-current mailing list