Date: Sat, 31 Oct 1998 06:30:01 -0800 (PST) From: HighWind Software Information <info@highwind.com> To: freebsd-bugs@FreeBSD.ORG Subject: Re: kern/8500: FreeBSD 3.0 thread scheduler is broken Message-ID: <199810311430.GAA09602@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/8500; it has been noted by GNATS. From: HighWind Software Information <info@highwind.com> To: peter@netplex.com.au Cc: freebsd-gnats-submit@FreeBSD.ORG Subject: Re: kern/8500: FreeBSD 3.0 thread scheduler is broken Date: Sat, 31 Oct 1998 09:20:46 -0500 (EST) > >Number: 8500 > >Category: kern > >Synopsis: FreeBSD 3.0 thread scheduler is broken > > >Description: > When an application has threads that are I/O intensive, that thread > unfairly steals cycles from all other threads. This makes writing > an MT program that does any real amount of I/O impossible. Yes, open(), read(), write(), etc block the entire process. The libc_r thread engine only works for things that can be select()ed apon, and read/ write cannot (yet). Ummm. Not to be rude.. But... That is NOT TRUE AT ALL. read() and write() CERTAINLY are selected apon and do NOT block the whole process when using libc_r. Read /usr/src/lib/libc_r/uthread/uthread_write.c and see for yourself. The only alternatives are to use the aio/lio syscalls (which work), or rfork(). libc_r could probably be modified to use rfork() to have the read/write/open/close/etc done in parallel. I don't think that is necessary. -Rob To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810311430.GAA09602>