From owner-freebsd-current@FreeBSD.ORG Wed Apr 2 15:11:38 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1586A37B401; Wed, 2 Apr 2003 15:11:38 -0800 (PST) Received: from stork.mail.pas.earthlink.net (stork.mail.pas.earthlink.net [207.217.120.188]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7DEDA43F3F; Wed, 2 Apr 2003 15:11:37 -0800 (PST) (envelope-from tlambert2@mindspring.com) Received: from pool0303.cvx22-bradley.dialup.earthlink.net ([209.179.199.48] helo=mindspring.com) by stork.mail.pas.earthlink.net with asmtp (SSLv3:RC4-MD5:128) (Exim 3.33 #1) id 190rOI-0002yl-00; Wed, 02 Apr 2003 15:11:35 -0800 Message-ID: <3E8B6DD5.7231C0F6@mindspring.com> Date: Wed, 02 Apr 2003 15:10:13 -0800 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Jeff Roberson References: <20030402152516.J64602-100000@mail.chesapeake.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-ELNK-Trace: b1a02af9316fbb217a47c185c03b154d40683398e744b8a42587ce21ee35e74cb7ace936e774089fa2d4e88014a4647c350badd9bab72f9c350badd9bab72f9c cc: Alexander Leidinger cc: csujun@21cn.com cc: Robert Watson cc: current@freebsd.org Subject: Re: libthr and 1:1 threading. X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Apr 2003 23:11:38 -0000 Jeff Roberson wrote: > On Wed, 2 Apr 2003, Terry Lambert wrote: > > Is the disk I/O really that big of an issue? All writes will > > be on underlying non-blocking descriptors; I guess you are > > saying that the interleaved I/O is more important, further > > down the system call interface than the top, and this becomes > > an issue? > > UNIX distinguishes between short term and long term blocking calls. Non > blocking io only avoids blocking for indeterminate periods of time. The > 20ms or so you're paying per IO on an IDE system is 20ms that no other > threads can run. This makes a difference. See other message. The fault should be tripped, but the process should not wait around for the result, if it was tripped as the result of a read on an async fd. Instead an EAGAIN should go to user space, and that 20ms should be used for something else in user space, while the drive gets busy with the DMA. This is arguably a bug in FreeBSD's handling of demand faults on non-blocking fd's, compared to SVR4 and Solaris' handling. > > It seems to me that maybe the correct fix for this is to use > > AIO instead of non-blocking I/O, then? > > Our AIO implementation needs some rethinking. I'm not sure how > effecient it actually is. I will guess it suffers from the same "faulting == halting" problem... > > Also, any ETA on the per process signal mask handing bug in > > libthr? Might not be safe to convert everything up front, in > > a rush of eager enthusiasm... > > Which bug is that? I'm not aware of it. KSE mailing list, starting Monday or so: ] We still haven't heard from jeff with regard to the process ] signal mask removal. -- Terry