From owner-freebsd-arch Sat Nov 20 18:35: 8 1999 Delivered-To: freebsd-arch@freebsd.org Received: from ns1.yes.no (ns1.yes.no [195.204.136.10]) by hub.freebsd.org (Postfix) with ESMTP id E607D14F20 for ; Sat, 20 Nov 1999 18:34:54 -0800 (PST) (envelope-from eivind@bitbox.follo.net) Received: from bitbox.follo.net (bitbox.follo.net [195.204.143.218]) by ns1.yes.no (8.9.3/8.9.3) with ESMTP id DAA22277 for ; Sun, 21 Nov 1999 03:34:53 +0100 (CET) Received: (from eivind@localhost) by bitbox.follo.net (8.8.8/8.8.6) id DAA11720 for freebsd-arch@freebsd.org; Sun, 21 Nov 1999 03:34:53 +0100 (MET) Received: from feral.com (feral.com [192.67.166.1]) by hub.freebsd.org (Postfix) with ESMTP id ADD2914F20; Sat, 20 Nov 1999 18:34:46 -0800 (PST) (envelope-from mjacob@feral.com) Received: from semuta.feral.com (semuta [192.67.166.70]) by feral.com (8.8.7/8.8.7) with ESMTP id SAA23969; Sat, 20 Nov 1999 18:35:23 -0800 Date: Sat, 20 Nov 1999 18:35:23 -0800 (PST) From: Matthew Jacob Reply-To: mjacob@feral.com To: Julian Elischer Cc: "Jordan K. Hubbard" , committers@freebsd.org, freebsd-arch@freebsd.org Subject: Re: Core responsibilities [was Re: PHK: "Shut up and go away quietly"] In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > > It did seem that the discussion was productive, but since it wasn't really > > my table, I didn't get involved. Now, if there's some talk about kernel > > threads, or more precisely, how a fully threaded kernel will need changes > > to the device I/O model, then I'm more interested. > > That's peculiar because teh first week was just discussing the goals. > from there we got to the fact that we need the following kernel > support. > > 1/ KSE's (kernel schedulable Entities that are separate from processes). > 2/ SUB-processes. (each with ONE OR MORE KSEs) > 3/ Processes (each with one or more Sub processes) > 4/ A second call-gate to implement the syscalls that are changed > 5/ A different syscall protocol (using #4) to implement the fact that all > IO becomes Async in a thread setting, and to return control to the > (User level) Thread Scheduler (UTS) when a KSE blocks. > 6/ A manner of returnig to the UTS after the subprocess is rescheduled > after a process preemption rather than returning to the thread that was > pre-empted. > 7/ A method for treating a pagefault as a blocking IO and returning to the > UTS when a thread get's a pagefault. > 7A/ A method of ensuring the UTS doesnt activate #7 if IT blocks. > 8/ A method of delivering a signal to the UTS rathe than to any randomly > running thread, and letting it decide which thread should handle it. > (7 and 8 are related) Sure- that's kernel stuff, but it doesn't really work much in the area I would be interested, namely making interrupt and other kernel threads (e.g., for CAM device inventory management) for all drivers that could use them (an interrupt thread per interrupt entry point is not unreasonable), replacing all spl type locking with mutex_init (based on device interrupt levels) and mutex_enter/mutex_exit usages, perhaps replacing sleep/wakeup which is a per-process thingie with cv_wait/cv_signal.. you know, that kinda low level kernel I/O stuff- more nuts and bolts and less theoretical. When the discussion gets around to these things and policies about whether SMP safe and SMP-unsafe drivers can coexist, then I'll be more than happy to waste everyone's time with my opinions. -matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message