From owner-freebsd-hackers Sat Jan 16 22:41:05 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id WAA10326 for freebsd-hackers-outgoing; Sat, 16 Jan 1999 22:41:05 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from apollo.backplane.com (apollo.backplane.com [209.157.86.2]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id WAA10321 for ; Sat, 16 Jan 1999 22:41:04 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.1/8.9.1) id WAA46889; Sat, 16 Jan 1999 22:41:01 -0800 (PST) (envelope-from dillon) Date: Sat, 16 Jan 1999 22:41:01 -0800 (PST) From: Matthew Dillon Message-Id: <199901170641.WAA46889@apollo.backplane.com> To: Terry Lambert Cc: hackers@FreeBSD.ORG Subject: Re: Path to SMP References: <199901152355.QAA21837@usr04.primenet.com> Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG This sounds like it is solving a different problem. It would be a rather complex solution to a relatively simple problem - processes can already 'almost' run in supervisor mode, in parallel, in an SMP environment. -Matt : :Jason Evans has started work on an async call based mechanism. : :The functional decomposition is into flags for each system call :to tell the trap code whether the call will: : :(A) Never block :(B) Sometimes block :(C) Always block : :The kernel work moves the kernel stack into a call context structure, :which includes a pointer to the VM for the process making the call. : :Effectively, this make all entries into the kernel seperately :schedulable, and allows a process to enter the kernel. : :The use of the type-of-call flags is an optimization, allowing the :use of a "fake" (static, user space) call context structure pointer :for calls in category (A), or (B), in the case that they run to :completion instead of blocking. : :The mechanism necessitates the addition of a multiplexed system call :that accepts the commands ACG_WAIT (Async Call Gate Wait) and :ACG_CANCEL. This is similar to the SVID III aiowait(RT), aiocancel(RT) :mechanism, and is also similar to the "aio" mechanisms in both :UnixWare and Solaris, semantically. It's also like the POSIX :stuff, only with the ability to do all calls, not just some of them. : :The mechanism should provide an SMP scalable basis for cooperative :user and kernel space thread scheduling which fully obeys POSIX :semantics. : :This sidesteps or resolves many of the issues for decomposition, :as pointed out in: : : Scheduling and Load Balancing in Parallel and Distributed : Systems : : Behrooz A. Shirazi, Ali R Hurson, and Krisna M. Kavi : IEEE Computer Society Press : ISBN 0-8186-6587-4 : : Terry Lambert : terry@lambert.org :--- :Any opinions in this posting are my own and not those of my present :or previous employers. : : :To Unsubscribe: send mail to majordomo@FreeBSD.org :with "unsubscribe freebsd-hackers" in the body of the message : Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message