From owner-freebsd-current Wed Jul 10 8:10:53 2002 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 5465B37B400 for ; Wed, 10 Jul 2002 08:10:51 -0700 (PDT) Received: from mail.speakeasy.net (mail14.speakeasy.net [216.254.0.214]) by mx1.FreeBSD.org (Postfix) with ESMTP id C5B2E43E5E for ; Wed, 10 Jul 2002 08:10:50 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: (qmail 16713 invoked from network); 10 Jul 2002 15:10:49 -0000 Received: from unknown (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender ) by mail14.speakeasy.net (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for ; 10 Jul 2002 15:10:49 -0000 Received: from laptop.baldwin.cx (gw1.twc.weather.com [216.133.140.1]) by server.baldwin.cx (8.11.6/8.11.6) with ESMTP id g6AFAm001320; Wed, 10 Jul 2002 11:10:48 -0400 (EDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.5.2 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: Date: Wed, 10 Jul 2002 11:10:53 -0400 (EDT) From: John Baldwin To: Julian Elischer Subject: RE: userret() , ast() and the end of syscalls Cc: FreeBSD current users , Bruce Evans Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On 09-Jul-2002 Julian Elischer wrote: > > > On Wed, 10 Jul 2002, Bruce Evans wrote: >> Can these flags be changed asynchronously? If so, then everything needs >> to be handled by ast() anyway. userret() should only check for work that >> needs doing in the usual case, and hopefully there is none (except for >> things like ktrace). > > That's an interestign way of thinking about it.. > in that case, shouldn't ast() be called from within userret() > instead of the other way around? > > userret() is called unconditionally from both trap() and syscall() > (or just trap() on architectures where syscall() is called by trap()) > > > if teh tast thing userret() did was to check if ast() should be called > and to call it, it might simplify things.. > also, should userret() then loop back to it's start if trap is called? > It would need to, to simulate what it is doing now.. The test you refer to is done in MD code because ensuring atomicity involves doing MD things like disabling interrupts. It really works quite well the way it is atm. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message