From owner-freebsd-bugs Fri Oct 30 23:04:02 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id XAA21037 for freebsd-bugs-outgoing; Fri, 30 Oct 1998 23:00:01 -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 XAA20991 for ; Fri, 30 Oct 1998 23:00:00 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id XAA21810; Fri, 30 Oct 1998 23:00:01 -0800 (PST) Date: Fri, 30 Oct 1998 23:00:01 -0800 (PST) Message-Id: <199810310700.XAA21810@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Peter Wemm Subject: Re: kern/8500: FreeBSD 3.0 thread scheduler is broken Reply-To: Peter Wemm 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: Peter Wemm To: info@highwind.com Cc: freebsd-gnats-submit@FreeBSD.ORG Subject: Re: kern/8500: FreeBSD 3.0 thread scheduler is broken Date: Sat, 31 Oct 1998 14:50:24 +0800 info@highwind.com wrote: > >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). 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. Cheers, -Peter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message