From owner-cvs-all Wed Apr 18 15:43:10 2001 Delivered-To: cvs-all@freebsd.org Received: from meow.osd.bsdi.com (meow.osd.bsdi.com [204.216.28.88]) by hub.freebsd.org (Postfix) with ESMTP id F373237B423; Wed, 18 Apr 2001 15:43:04 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by meow.osd.bsdi.com (8.11.2/8.11.2) with ESMTP id f3IMgmG61466; Wed, 18 Apr 2001 15:42:49 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 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, 18 Apr 2001 15:42:13 -0700 (PDT) From: John Baldwin To: Bruce Evans Subject: Re: cvs commit: src/sys/alpha/alpha exception.s Cc: cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org, Doug Rabson Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 18-Apr-01 Bruce Evans wrote: > On Wed, 18 Apr 2001, John Baldwin wrote: > >> Ok, I've read more of exception.s and my head feels better, sort of. The >> problem with t7 being that we might get an interrupt after we restore the >> registers and thus we trash the t7 right before the rti PAL call? Hmmm. >> I think we only need to raise the IPL just before we do the bsr to >> exception_restore_regs(), so it would only be raised for the length of the >> register restore and the call_pal. I wonder if x86 has the same race >> condition >> with %fs. We might need to be doing a 'cli' in doreti_exit just before we >> pop >> %fs. > > I don't think so. %fs is invalid at various times, including at the start > of Xintr* for an interrupt from user mode and at the end of doreti for > return to user mode, but it will be loaded in Xintr* if there is another > interrupt. > > OTOH, it is a bug that interrupts sometimes aren't already disabled > when doreti_exit is reached. ASTs must be checked for atomically with > returning, like they used to be, so that we never return to user mode > with an AST pending. ast() probably should disable interrupts when it returns and it probably doesn't. > Bruce -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message