From owner-freebsd-bugs Sat Oct 31 06:30:02 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id GAA00964 for freebsd-bugs-outgoing; Sat, 31 Oct 1998 06:30:02 -0800 (PST) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id GAA00921 for ; Sat, 31 Oct 1998 06:30:00 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id GAA09602; Sat, 31 Oct 1998 06:30:01 -0800 (PST) Date: Sat, 31 Oct 1998 06:30:01 -0800 (PST) Message-Id: <199810311430.GAA09602@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.ORG From: HighWind Software Information Subject: Re: kern/8500: FreeBSD 3.0 thread scheduler is broken Reply-To: HighWind Software Information Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/8500; it has been noted by GNATS. From: HighWind Software Information 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