From owner-freebsd-hackers Fri Mar 5 10:16:46 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from smtp03.primenet.com (smtp03.primenet.com [206.165.6.133]) by hub.freebsd.org (Postfix) with ESMTP id 05EEE152EA for ; Fri, 5 Mar 1999 10:16:41 -0800 (PST) (envelope-from tlambert@usr06.primenet.com) Received: (from daemon@localhost) by smtp03.primenet.com (8.8.8/8.8.8) id LAA03611; Fri, 5 Mar 1999 11:16:24 -0700 (MST) Received: from usr06.primenet.com(206.165.6.206) via SMTP by smtp03.primenet.com, id smtpd003588; Fri Mar 5 11:16:20 1999 Received: (from tlambert@localhost) by usr06.primenet.com (8.8.5/8.8.5) id LAA10950; Fri, 5 Mar 1999 11:16:18 -0700 (MST) From: Terry Lambert Message-Id: <199903051816.LAA10950@usr06.primenet.com> Subject: Re: lockf and kernel threads To: hasty@rah.star-gate.com (Amancio Hasty) Date: Fri, 5 Mar 1999 18:16:18 +0000 (GMT) Cc: tlambert@primenet.com, dyson@iquest.net, dick@tar.com, jplevyak@inktomi.com, hackers@FreeBSD.ORG In-Reply-To: <199903051757.JAA81871@rah.star-gate.com> from "Amancio Hasty" at Mar 5, 99 09:57:43 am X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > > Actually, AST's run in a mode between supervisor and user. The x86 > > handles this (the infrequently used "ring 1" and "ring 2", but other > > processor architectures do not. > > or previous employers. > > Thats a kernel implementation issue and not necessarily a platform specific > feature assuming > that the platform can do multitasking . It was my understanding that it had to run in the user's process on potentially N alternate stacks, simultaneously, if an AST fires while an AST is filiring. Basically, ring 2 is used to supply th stack and the program counter. I think you could queue it, but you would lose your interleave. I think that completion functions are less useful than select type functions. For VMS, this would be SYS$WAITEFLOR, which waits for an event flag to be set by an AST callback into event-flag-setting code. You have to use a "wait for completion" interface of some kind if you intend to implement threads, since, the wait is the top of the call conversion scheduler pyramid. 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