From owner-freebsd-hackers@FreeBSD.ORG Wed Nov 5 07:54:17 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 4DB8C16A4CE; Wed, 5 Nov 2003 07:54:17 -0800 (PST) Received: from park.rambler.ru (park.rambler.ru [81.19.64.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6B73143FF7; Wed, 5 Nov 2003 07:54:15 -0800 (PST) (envelope-from is@rambler-co.ru) Received: from is.park.rambler.ru (is.park.rambler.ru [81.19.64.102]) by park.rambler.ru (8.12.6/8.12.6) with ESMTP id hA5Fs4J6007014; Wed, 5 Nov 2003 18:54:04 +0300 (MSK) (envelope-from is@rambler-co.ru) Date: Wed, 5 Nov 2003 18:54:04 +0300 (MSK) From: Igor Sysoev X-Sender: is@is.park.rambler.ru To: Robert Watson 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 15:54:17 -0000 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. Igor Sysoev http://sysoev.ru/en/