From owner-freebsd-hackers@FreeBSD.ORG Wed Nov 5 08:40:55 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C13B116A4CF for ; Wed, 5 Nov 2003 08:40:55 -0800 (PST) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 818B043F93 for ; Wed, 5 Nov 2003 08:40:54 -0800 (PST) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.12.9p2/8.12.9) with ESMTP id hA5GdKMg085496; Wed, 5 Nov 2003 11:39:20 -0500 (EST) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)hA5GdJ1E085493; Wed, 5 Nov 2003 11:39:20 -0500 (EST) (envelope-from robert@fledge.watson.org) Date: Wed, 5 Nov 2003 11:39:19 -0500 (EST) From: Robert Watson X-Sender: robert@fledge.watson.org To: Igor Sysoev In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-hackers@freebsd.org cc: Vivek Pai cc: Alan Cox Subject: Re: Update: Debox sendfile modifications X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Nov 2003 16:40:55 -0000 On Wed, 5 Nov 2003, Igor Sysoev wrote: > On Wed, 5 Nov 2003, Robert Watson wrote: > > > On Wed, 5 Nov 2003, Igor Sysoev wrote: > > > > > As to worker kthreads I think it's better to queue aio operation as it > > > was made in src/sys/kern/vfs_aio.c:aio_qphysio(). > > > > One of the things that worries me about the proposal to use kernel worker > > threads to perform the I/O is that this can place a fairly low upper bound > > on effective parallelism, unless the kernel threads themselves can issue > > the I/O's asynchronously. In the network stack itself, we are event and > > queue driven without blocking--if we can maintain the apparent semantics > > to the application, it would be very nice to be able to handle that at the > > socket layer itself. I.e., not waste a thread + stack per "in-progress" > > operation, and instead have a worker or two that simply propel operations > > up and down the stack (similar to geom_up and geom_down). > > As far as I understand src/sys/kern/vfs_aio.c:aio_qphysio() (that > handles AIO on raw disks) does not use kthreads and simply queues > operations. I think it sounds like we're actually agreeing with each other. Currently, AIO does use threads for non-character devices, so in the socket case it will be using a worker thread. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Network Associates Laboratories