From owner-freebsd-current@FreeBSD.ORG Tue Jan 24 00:31:03 2006 Return-Path: X-Original-To: freebsd-current@freebsd.org 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 DAF4816A420; Tue, 24 Jan 2006 00:31:03 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id A0D4E43D46; Tue, 24 Jan 2006 00:31:03 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from [127.0.0.1] (root@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k0O0V0d9019380; Tue, 24 Jan 2006 00:31:01 GMT (envelope-from davidxu@freebsd.org) Message-ID: <43D5753D.8060102@freebsd.org> Date: Tue, 24 Jan 2006 08:30:53 +0800 From: David Xu User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.12) Gecko/20060107 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Julian Elischer References: <43D05151.5070409@elischer.org> <200601231616.49140.jhb@freebsd.org> <43D55739.80608@elischer.org> In-Reply-To: <43D55739.80608@elischer.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-current@freebsd.org Subject: Re: kernel thread as real threads.. X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 24 Jan 2006 00:31:04 -0000 Julian Elischer wrote: > > John Baldwin wrote: > >> On Thursday 19 January 2006 21:56, Julian Elischer wrote: >> >> >>> some progrsss.. >>> as the first few lines show, it's not quite perfect yet but it's >>> most of >>> the way there.. >>> (Like proc 1 isn't init) >>> >> >> >> One other note, watch out for the AIO daemons. They have to be >> kernel procs and not kthreads because they borrow the vmspace of the >> user process when performing AIO on another process' behalf. >> >> >> > yeah I found that and the patches account for that. > > However I would like to suggest that we change the way that aio works.. > > My suggestion is that when a process does AIO, that we "fork a > ksegroup" and attach it to the > process, and assign it a (or some) worker thread to do the aio work. > The userland process would > be oblivious of the extra (kernel) threads in that kseg and they would > be independently schedulable. > They would however automatically have full access to the correct > address space. > These threads should be invisible to userland debugger, and other code current unknown, for example, signal code ? The idea seems simply but we may in fact encounter problem, because you inject unknown threads to a process. :-) I still prefer current model, also the aiod threads can be reused for multiple processes.